小编Moh*_*med的帖子

Array.push修改现有元素

我正在做一个小型的个人项目,我遇到了一些我不明白的事情,我希望有人能向我解释一下。我的模块中的方法之一是 SaveSet(),它接受一个数组并将其作为元素添加到另一个数组中,使其成为二维数组,这里是 SaveSet() 的代码:

function SaveSet() {
    anim.push(set)
}  
Run Code Online (Sandbox Code Playgroud)

当我运行这段代码时,我希望它能够获取 set 数组中的所有内容,并将其作为元素添加到 anim 数组中,如下所示。

Set = [1,2,3,4]
SaveSet()
Set = [3,4,5,6]
SaveSet()
Run Code Online (Sandbox Code Playgroud)

我应该得到这样的结果:

[
   [1,2,3,4]
   [3,4,5,6]
]
Run Code Online (Sandbox Code Playgroud)

然而,我的 SaveSet() 正在修改现有的并添加一个新的,所以我最终得到这样的结果

[
  [1,2,3,4,3,4,5,6]
  [1,2,3,4,3,4,5,6]
]
Run Code Online (Sandbox Code Playgroud)

我通过将 SaveSet() 更改为以下内容找到了解决方法:

function SaveSet() {
    let temp = JSON.stringify(set)
    anim.push(JSON.parse(temp));
}  
Run Code Online (Sandbox Code Playgroud)

然而,我仍然不明白为什么 anim.push 也要修改现有的。这是完整的代码,如果有人想看的话。正如我所说,这是一个个人快速项目,因此代码和设计的质量非常低。 https://codepen.io/anon/pen/oJZeJy?editors=1111

javascript arrays

3
推荐指数
1
解决办法
3991
查看次数

从 JS Date 对象获取错误的天数

这可能真的很简单,我在某处错过了一些东西,但我需要找出一个月中有多少天,我遇到的一个问题是当我运行以下代码时,我没有得到正确的天数

Septemper(应该是 30 但得到 31 ):

const date = new Date("2021/9/11");
const daysInMonth = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
console.log(date)
console.log(daysInMonth)
Run Code Online (Sandbox Code Playgroud)

八月(应该是 31 并且确实得到了 31)

const date = new Date("2021/8/11");
const daysInMonth = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
console.log(date)
console.log(daysInMonth)
Run Code Online (Sandbox Code Playgroud)

十月(应该是 31 但得到 30)

const date = new Date("2021/10/11");
const daysInMonth = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
console.log(date)
console.log(daysInMonth)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我没有从他们那里得到预期的答案,所以我认为月份是从 0 开始计算的,但因为我提供了一个无关紧要的字符串。我希望你能帮我解决这个问题!

javascript

0
推荐指数
1
解决办法
45
查看次数

标签 统计

javascript ×2

arrays ×1