【发布时间】:2020-06-05 15:21:30
【问题描述】:
这是一种将数组细分为更小块的解决方案。该解决方案在数组项上使用长度属性,这对我来说没有意义,因为它应该是未定义的;但是,该解决方案确实有效,当我在带有调试器的 chrome 开发工具中将它作为 sn-p 运行时,它确实显示了一个值,我只是不确定它是如何工作的。我无法解释为什么last.length 有任何价值。有人可以解释为什么这有效,以及为什么我不能 console.log 为它记录一个值吗?
const chunk = (arr, size) => {
let newArr = []
for (let el of arr) {
let last = newArr[newArr.length -1]
console.log(last, 'i am last')
if(!last || last.length === size) {
newArr.push([el])
} else {
last.push(el)
}
}
return newArr
}
// chunk([1, 2, 3, 4, 5], 2) --> [[ 1, 2], [3, 4], [5]]
【问题讨论】:
-
因为
last是一个数组(因为数组中的项目是数组)?数组有一个.length? -
我认为他指的是
let last = newArr[newArr.length -1]将导致undefined被分配到最后。
标签: javascript arrays algorithm for-loop