我正在做一个小型的个人项目,我遇到了一些我不明白的事情,我希望有人能向我解释一下。我的模块中的方法之一是 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
这可能真的很简单,我在某处错过了一些东西,但我需要找出一个月中有多少天,我遇到的一个问题是当我运行以下代码时,我没有得到正确的天数
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 开始计算的,但因为我提供了一个无关紧要的字符串。我希望你能帮我解决这个问题!