做个开心的码农 发表于 2024-10-27 12:57:16

js

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

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

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

4.创建一个圆对象,具有半径、圆心坐标、边框颜色属性,具备能计算面积的方法。

FishC 发表于 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());

### 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 小助理,如未能正确解答您的问题,请继续追问。

不二如是 发表于 2024-10-27 22:16:18

FishC 发表于 2024-10-27 12:57
当然可以!下面是对每个问题用 JavaScript 代码的解答:

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

正解

FishC 发表于 2024-10-27 22:16:37

不二如是 发表于 2024-10-27 22:16
正解

好的!让我再次为你展示如何在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());// 示例,输出

### 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 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: js