繁体   English   中英

Javascript for 循环返回空数组

[英]Javascript for loop returning empty array

我有一个 for 循环

for (let i = 0; i < itemsArray.length; i++) {
  newItemsArray.push(itemsArray[i])
}

当我控制台记录 newItemsArray 时,我得到的结果与 itemsArray 相同。 但是,如果我做这样的事情,我会得到带有未定义值的空数组

for (let i = 0; i < 5; i++) {
  newItemsArray.push(itemsArray[i])
}

我正在尝试在页面加载时添加一定数量的项目,所以 5 个项目,直到我们看到第 5 个项目,然后再添加 5 个。如果有更好的解决方案,请建议:)

谢谢

您可以在没有循环的情况下执行此操作:

const starterItems = ["apple", "banana", "cherry", "mango", "orange"]
let newItems = [...starterItems]
// if you want to add extra 5 items:
newItems = [...newItems, ...starterItems]

这是 ES6 功能,您可以在此处阅读更多信息: MDN 上的传播运算符

编辑:如果你想得到你的数组的一部分,你可以像这样使用过滤器方法:

let itemsLimit = 5
newItemsArray = itemsArray.filter((item, index) => index < itemsLimit)
// later in the code you can change itemsLimit, 
// and then you need to filter the array again
itemsLimit = 10
newItemsArray = itemsArray.filter((item, index) => index < itemsLimit)

上面的代码将包含每个数组项,直到 itemsLimit 被项的索引“达到”这将创建您想要的数组。 如果你也想包含启动器 position,你可以这样做:

let starterPosition = 3
newItemsArray = itemsArray.filter((item, index) => index < itemsLimit && index >= starterPosition)

更多关于 Javascript 中 Arrays 的过滤器功能: MDN 上的过滤器阵列方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM