2011-06-16 76 views
0

我已經在JSJavaScript的排序2D陣列和去除一些元件

var myArray=[ 
[el1,pos1,width1,active1], 
[el2,pos2,width2,active2], 
[el3,pos4,width3,active3], 
[el4,pos1,width4,active4] 
]; 

創建陣列如何刪除與活性(I)= 0元素? 然後我需要通過pos(i)升序排序 你能給我一些樣品/解決方案嗎?

+0

可能的重複[按第二個值對二維數組排序](http://stackoverflow.com/questions/3524827/sort- a-2d-array-by-the-second-value)和[很多其他](http://stackoverflow.com/search?q=javascript+sort+multidimensional+array)。關於刪除:最簡單的方法是循環數據並將這些值添加到您想要保留的新數組中。 – 2011-06-16 11:57:07

+0

但我怎麼能刪除subArray活躍(我)== 0? – gerpaick 2011-06-16 11:59:51

回答

2

如上所述,there are a lot of questions that already cover the sorting issue。看看他們。

關於刪除:

您可以在陣列上進行迭代,並只會增加你想保持到一個新的數組中的值:

var filtered = []; 

for(var i = 0, l = myArray.length; i < l; i++) { 
    if(myArray[i][3] !== 0) { 
     filtered.push(myArray[i]); 
    } 
} 

如果你想改變陣列就地 ,您可以使用.splice()[docs]

for(var i = myArray.length; i--;) { 
    if(myArray[i][3] === 0) { 
     myArray.splice(i, 1); 
    } 
} 
+0

就是這樣感謝 – gerpaick 2011-06-16 12:17:53

+0

@gerpaick:你也應該接受最能幫助你的答案,方法是點擊下一步的勾號大綱。您已經提出了幾個問題,但從未接受過答案... – 2011-06-16 12:19:11

+0

oops。我沒有看過它。感謝您指出這一點! – gerpaick 2011-06-16 12:25:48