簡體   English   中英

從數組中刪除對象

[英]removing objects from array

我有一個array = []它包含對象... obj, obj, obj 我必須刪除obj two ,但我不知道索引...所以我怎樣才能刪除 obj. object 的名稱也相同。

我希望它可以幫助你:

function removeByElement(array,obj) {
  for(var i=0; i<array.length;i++ ) { 
    if(array[i]==obj) {
      array.splice(i,1); 
      break;
    }
  } 
}

編輯:打破循環。

執行此操作的 ES5 方法是使用Array.filter

 myarray = myarray.filter(function(val, index, a) {
    return (val !== obj);
 });

如果您沒有 ES5,請參閱上面鏈接的 MDN 頁面以獲取要使用的版本。

從技術上講,這會創建一個新數組,而不是修改原始數組。 然而,在其他答案中提出的splice並不是特別有效,因為它必須重新編號每個匹配元素上方的所有索引,並且如果有多個匹配項,它將一遍又一遍地這樣做。

function removeObject(obj, arr) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] === obj) {
      arr.splice(i, 1);
      break;
    }
  }
}

如果您不知道索引,則必須迭代所有元素並檢查每個元素是否是您要查找的元素,然后將其delete

var len = your_array.length;
for(var i=0; i<len;i++){
  if(typeof(your_arry[i])=='classOfTypeYouLookFor'){// OR if(your_array[i].property_of_class && your_array[i].property_of_class==some_specific_value){
      delete(your_arry[i]);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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