【发布时间】:2021-10-27 00:20:57
【问题描述】:
我了解下面函数的逻辑,但我不明白这些值是如何添加到chunked 数组中的。该代码通过在每次迭代中向last 添加一个元素并在last 的长度等于size 时“分块”来返回[[1,2,3],[4,5,6],[7]]。但是,代码不会在任何地方更新“分块”数组。即chunked.push(element) 或chunked.push(last)。
function chunk(array, size) {
const chunked = [];
const test = [];
for (let element of array) {
const last = chunked[chunked.length - 1];
console.log("This is last: " + last)
if (!last || last.length === size) {
chunked.push([element]);
} else {
last.push(element);
}
}
console.log('test : ', test);
return chunked;
}
chunk([1, 2, 3, 4, 5, 6, 7], 3)
【问题讨论】:
-
chunked包含对last的引用,它会推送到last。 -
谢谢,我想我明白了。将两个数组设置为彼此时,我没有意识到在 java 脚本中改变一个会改变另一个
-
不是两个数组。这是对同一个数组的两个引用。
标签: javascript arrays declaration variable-declaration