2013-03-20 180 views
4

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

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

如何在不创建新阵列的情况下说“hello”?

+0

只是为了让你知道,创建一个新的阵列会在这种情况下快约20倍,即'newArray = [];对于(i = 0; i <= TheArray.length; i + = 3)newArray.push(TheArray [i])&& newArray.push(TheArray [i + 1]);' – 2017-06-22 13:59:09

+0

jsfiddle:https:// jsfiddle。 net/yexqr68z/1/ – 2017-06-22 14:14:02

回答

7

试试这个:

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

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

+0

非常感谢你帮助了我很多! :) – Curiously 2013-03-21 14:38:42

+0

@ user2033351不客气。请记住,一些数组方法,比如'splice','sort'和'push'可以修改数组,而像'slice','concat','map'和'filter'这样的其他数组方法则不会。 – MaxArt 2013-03-21 15:19:51

0

如果你想要一个字符串,不要改变数组。

var r = ''; 
for (var i=0; i<TheArray.length; i++) { 
    if (i%3!=2) r += TheArray[i]; 
} 
// now r is "hello" 
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']