[英]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.