簡體   English   中英

按位置從javascript數組中刪除元素

[英]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.indexOfarray.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM