6

如何从数组中删除每个第三个元素?

var TheArray = ['h', 'e', 'z', 'l', 'l', 'l', 'o']

如何在不创建新数组的情况下让它说“你好”?

4

4 回答 4

9

试试这个:

for (var i = 2; i <= TheArray.length; i += 2)
    TheArray.splice(i, 1);

如果最后想要一个字符串,只需使用TheArray.join("").

于 2013-03-20T20:17:12.297 回答
1

另一种方法是使用Array.prototype.filter()函数。以下是如何使用它删除每个第三个元素:

var TheArray = ['h', 'e', 'z', 'l', 'l', 'l', 'o']
TheArray = TheArray.filter(function(d, i){ return (i+1)%3 !== 0; })

希望能帮助到你。

于 2018-08-02T09:59:12.287 回答
0

如果您想要一个字符串,请不要更改数组。

var r = '';
for (var i=0; i<TheArray.length; i++) {
   if (i%3!=2) r += TheArray[i];
}
// now r is "hello"
于 2013-03-20T20:17:41.393 回答
0

试试这个:

var arr = ['h', 'e', 'z', 'l', 'l', 'l', 'o'];
for(var i = 2; i < arr.length; i+=2)
    arr.splice(i, 1);
console.log(arr); // outputs ['h','e','l','l','o']
于 2013-03-20T20:19:29.490 回答