鱼C论坛

 找回密码
 立即注册
查看: 83|回复: 3

js

[复制链接]
发表于 2024-10-27 12:57:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 从1-54这54个整数中依次随机取一个数,构成三组数,每组17个数,将各组数升序排列,同时将剩余的数升序排列,显示这三组数和剩余的三个数。

2. 将一个整数数组中重复的数据删除

3. 设计一个函数,参数分别代表年、月、日,利用基姆拉尔森计算公式计算出日期的星期值(1至7之间 1代表星期一,7代表星期天)

4.创建一个圆对象,具有半径、圆心坐标、边框颜色属性,具备能计算面积的方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-10-27 12:57:29 | 显示全部楼层
当然可以!下面是对每个问题用 JavaScript 代码的解答:

### 1. 从1-54这54个整数中依次随机取数,构成三组数,排序并显示
function getRandomGroups() {
  let nums = Array.from({length: 54}, (_, i) => i + 1);  // 创建一个长度为 54 的数组,元素为 1 到 54 的整数
  nums.sort(() => Math.random() - 0.5);  // 对数组进行随机排序
  
  let group1 = nums.slice(0, 17).sort((a, b) => a - b);
  let group2 = nums.slice(17, 34).sort((a, b) => a - b);
  let group3 = nums.slice(34, 51).sort((a, b) => a - b);
  let remaining = nums.slice(51).sort((a, b) => a - b);

  console.log("Group 1:", group1);
  console.log("Group 2:", group2);
  console.log("Group 3:", group3);
  console.log("Remaining:", remaining);
}

getRandomGroups();

### 2. 删除整数数组中的重复数据
function removeDuplicates(arr) {
  return [...new Set(arr)];
}

console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5]));

### 3. 基姆拉尔森计算公式计算星期值

基姆拉尔森计算公式如下:
\[ h = (q + \left\lfloor\frac{{13(m+1)}}{5}\right\rfloor + K + \left\lfloor\frac{K}{4}\right\rfloor + \left\lfloor\frac{J}{4}\right\rfloor + 5J) \mod 7 \]

- \( h \) 是星期几 (0 = 星期六, 1 = 星期日, 2 = 星期一, ..., 6 = 星期五)
- \( q \) 是日
- \( m \) 是月 (3 = 三月, 4 = 四月, ..., 12 = 十二月;1 = 一月和2 = 二月,视为前一年的 13 和 14 月)
- \( K \) 是年份的后两位
- \( J \) 是世纪数 (年份前两位)
function dayOfWeek(year, month, day) {
  if (month < 3) {
    month += 12;
    year -= 1;
  }
  
  const q = day;
  const m = month;
  const K = year % 100;
  const J = Math.floor(year / 100);

  const h = (q + Math.floor((13 * (m + 1)) / 5) + K + Math.floor(K / 4) + Math.floor(J / 4) + 5 * J) % 7;
  const d = ((h + 5) % 7) + 1;  // 转换 h 到 1(星期一) 到 7(星期天)
  
  return d;
}

console.log(dayOfWeek(2023, 10, 3));  // 例如:2023年10月3日

### 4. 创建圆对象,具有半径、圆心坐标、边框颜色属性,并计算面积
class Circle {
  constructor(radius, centerX, centerY, borderColor) {
    this.radius = radius;
    this.centerX = centerX;
    this.centerY = centerY;
    this.borderColor = borderColor;
  }

  getArea() {
    return Math.PI * this.radius * this.radius;
  }

  toString() {
    return `Circle with radius: ${this.radius}, center: (${this.centerX}, ${this.centerY}), border color: ${this.borderColor}`;
  }
}

// 示例用法
let circle = new Circle(10, 0, 0, 'red');
console.log(circle.toString());
console.log("Area: ", circle.getArea());

希望这些代码能够帮助你理解并解决上述问题!如果有任何疑惑,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-10-27 22:16:18 | 显示全部楼层
FishC 发表于 2024-10-27 12:57
当然可以!下面是对每个问题用 JavaScript 代码的解答:

### 1. 从1-54这54个整数中依次随机取数,构成 ...

正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-10-27 22:16:37 | 显示全部楼层


好的!让我再次为你展示如何在JavaScript中分别解决这四个问题,并确保代码简洁易懂。

### 1. 从1到54随机取数并分组排序
function getRandomGroups() {
  let nums = Array.from({length: 54}, (_, i) => i + 1);  // 创建包含1到54的数组
  nums.sort(() => Math.random() - 0.5);  // 随机打乱数组

  let group1 = nums.slice(0, 17).sort((a, b) => a - b);
  let group2 = nums.slice(17, 34).sort((a, b) => a - b);
  let group3 = nums.slice(34, 51).sort((a, b) => a - b);
  let remaining = nums.slice(51).sort((a, b) => a - b);

  console.log("Group 1:", group1);
  console.log("Group 2:", group2);
  console.log("Group 3:", group3);
  console.log("Remaining:", remaining);
}

getRandomGroups();

### 2. 删除整数数组中的重复数据
function removeDuplicates(arr) {
  return Array.from(new Set(arr));  // 使用Set自动去重
}

console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5]));  // 示例,输出[1, 2, 3, 4, 5]

### 3. 基姆拉尔森计算公式计算星期值

基姆拉尔森计算公式如下:
- \( h \) 是星期几 (0 = 星期六, 1 = 星期日, 2 = 星期一, ..., 6 = 星期五)
- \( q \) 是日
- \( m \) 是月 (3 = 三月, 4 = 四月, ..., 12 = 十二月;1 = 一月和2 = 二月,视为前一年的 13 和 14 月)
- \( K \) 是年份的后两位
- \( J \) 是世纪数 (年份前两位)
function dayOfWeek(year, month, day) {
  if (month < 3) {
    month += 12;
    year -= 1;
  }
  
  const q = day;
  const m = month;
  const K = year % 100;
  const J = Math.floor(year / 100);

  const h = (q + Math.floor((13 * (m + 1)) / 5) + K + Math.floor(K / 4) + Math.floor(J / 4) + 5 * J) % 7;
  const d = ((h + 5) % 7) + 1;  // 转换 h 到 1(星期一) 到 7(星期天)
  
  return d;
}

console.log(dayOfWeek(2023, 10, 3));  // 例如:2023年10月3日

### 4. 创建圆对象,具有半径、圆心坐标、边框颜色属性,并计算面积
class Circle {
  constructor(radius, centerX, centerY, borderColor) {
    this.radius = radius;
    this.centerX = centerX;
    this.centerY = centerY;
    this.borderColor = borderColor;
  }

  getArea() {
    return Math.PI * this.radius * this.radius;
  }

  toString() {
    return `Circle with radius: ${this.radius}, center: (${this.centerX}, ${this.centerY}), border color: ${this.borderColor}`;
  }
}

// 示例用法
let circle = new Circle(10, 0, 0, 'red');
console.log(circle.toString());
console.log("Area: ", circle.getArea());

希望这些代码能够帮助你理解并解决这四个问题!如有进一步的疑问,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 12:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表