gpt4 book ai didi

Javascript:在循环中使用 array.slice() 并且没有按预期工作

转载 作者:行者123 更新时间:2023-12-03 08:26:56 25 4
gpt4 key购买 nike

任何人都可以帮助我告诉我我的 Javascript 代码有什么问题吗?

var a = ["zero", "one", "two", "three"];
for (var i in a) {
var sliced = a.slice(i + 1);
console.log(sliced);
}

控制台日志给出:["one", "two", "three"],[],[],[]

但我期望的是:["one", "two", "three"],["two", "three"],["three"],[]

那么,为什么我的代码不起作用?我应该如何编码?非常感谢。

最佳答案

您需要将字符串解析为数字,因为 for...in语句获取将是 string 的对象属性。所以在第二次迭代中,它会尝试做 a.slice('11')(string cocatenation '1' + 1 ==> '11' ) 返回一个空数组。

var a = ["zero", "one", "two", "three"];
for (var i in a) {
var sliced = a.slice(Number(i) + 1);
console.log(sliced);
}

因为它是一个数组,所以最好使用一个带有从 1 开始的计数器变量 i 的 for 循环。

var a = ["zero", "one", "two", "three"];
for (var i = 1; i < a.length; i++) {
var sliced = a.slice(i);
console.log(sliced);
}

关于Javascript:在循环中使用 array.slice() 并且没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41821005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com