[英]Remove elements from javascript array by position
我有一個JavaScript數組
var countries = ["India","USA","China","Canada","China"];
我只想從第二個位置刪除“中國”,然后返回
var countries = ["India","USA","Canada","China"];
類似於linkedlist.remove(index)
我已經閱讀了以下問題,但是如果數組中有重復的元素,我不知道如何使用它。 如何從JavaScript中的數組中刪除特定元素?
您可以混合使用array.indexOf
和array.splice
。
var countries = ["India","USA","China","Canada","China"];
var first_china = countries.indexOf("China");
if(first_china > -1){
countries.splice(first_china , 1);
}
您鏈接的問題也有相同的答案( https://stackoverflow.com/a/5767357 )。 indexOf
將返回您找到的第一個匹配項的索引。 因此,如果有重復項,它將仍然僅刪除第一個。
嘗試splice():
countries.splice(2,1);
在這里,第一個參數是位置,第二個參數是要刪除的元素數。
要獲取索引,請使用indexOf(),如果未找到,則為-1:
countries.indexOf("China");
所以你有了:
var i = countries.indexOf("China");
if(-1 !== i) {
countries.splice(i, 1);
}
您可以使用JavaScript Array splice()
方法。
var countries = ["India", "USA", "China", "Canada", "China"]; document.getElementById("demo").innerHTML = countries; function myFunction() { countries.splice(2, 1); document.getElementById("demo").innerHTML = countries; }
<button onclick="myFunction()">SPLICE!</button> <p id="demo"></p>
var c = ["India","USA","China","Canada","China"];
// provide the index you want to remove here (2)
var c2 = c.filter(function(item, idx) {if(idx != 2) return item;});
console.log(c2);
演示 : http : //jsfiddle.net/kf8epwnh/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.