2015-04-02 51 views
2

如果我有類似的JavaScript如何在索引不連續的數組中同時按索引刪除多個元素?

var A = [5,3,5,7,2,9,0,1,4,6,5,2]; 

數組如何從陣列中的一個步驟刪除索引0,3,7,8?這是可能的,還是我需要遍歷我想要刪除的每個索引。請注意我想要刪除的給定索引沒有模式,並且是隨機的。他們也沒有排序(我想刪除的指數)。

+1

循環出現了什麼問題? – ZekeDroid 2015-04-02 00:21:25

+0

我想知道如果可能在一步。 – omega 2015-04-02 00:21:44

+0

什麼構成*步* *? – 2015-04-02 00:22:33

回答

-1

在數組的原型中引入一個方法。現在每個數組都有自動的行爲!

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<script> 

var del = function(indicesToDelete) { 
for (i in indicesToDelete) { 
console.info(this); 
delete this[indicesToDelete[i]]; 
} 
} 

Array.prototype.del = del; 

var arr = [10,20, 30, 40, 50, 60]; 

//del([1, 3]); 

arr.del([1, 3]); 
alert(arr); 

var arr2 = [10000, 200000, 300000, 400000]; 

arr2.del([2, 4]); 

alert(arr2); 
</script> 
</head> 
<body> 

</body> 
</html> 
+0

誰投票否決不理解JavaScript的動態好處。 – 2015-04-02 00:36:20

+0

Downvoter here。 downvoted的人都明白,這會修改Array的原型,這是一種可疑的做法,並且明白你的代碼仍然包含一個循環,並沒有解釋爲了完成OP所要求的內容,不可能在某處*進行迭代。 – jdphenix 2015-04-02 00:37:40

+0

...並且你的代碼通過delete屬性刪除數組索引,這也是可疑的,我懷疑這是OP詢問的有關刪除元素的問題。 – jdphenix 2015-04-02 00:39:05