2013-03-20 159 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'] 
相關問題