我有一個array = []
它包含對象... obj, obj, obj
。我必須刪除obj two
,但我不知道索引...所以我如何刪除obj。對象的名稱也是相同的。從陣列中刪除對象
Q
從陣列中刪除對象
2
A
回答
4
我希望它可以幫助你:
function removeByElement(array,obj) {
for(var i=0; i<array.length;i++) {
if(array[i]==obj) {
array.splice(i,1);
break;
}
}
}
編輯: 破環。
1
function removeObject(obj, arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === obj) {
arr.splice(i, 1);
break;
}
}
}
1
,如果你不知道該索引,你必須遍歷所有元素,並檢查每個如果他們是一個你看,然後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]);
}
}
+1
這會在陣列中留下一個洞 – 2011-05-01 19:20:57
+0
可能是我誤解了這個問題 – 2011-05-01 19:21:38
4
的ES5的方式來做到這一點是Array.filter
myarray = myarray.filter(function(val, index, a) {
return (val !== obj);
});
見上面,如果你沒有ES5版本使用鏈接的頁面MDN。
從技術上講,這會創建一個新的數組,而不是修改原始數組。然而,在其他答案中提出的splice
並不是特別有效,因爲它必須對每個匹配元素上方的所有索引重新編號,並且如果有多個匹配則會反覆進行。
相關問題
- 1. 從陣列中刪除多個對象
- 2. 從nsmutable陣列中刪除對象
- 3. JSON_MODIFY刪除陣列對象
- 4. 從陣列列表中刪除特定對象
- 5. 帶過濾器陣列中刪除對象將刪除整個陣列
- 6. 刪除對象從列表
- 7. 如何從本地存儲中的陣列中刪除對象?
- 8. Redux - 從嵌套在另一個陣列中的陣列中刪除對象
- 9. 貓鼬刪除空對象或陣列
- 10. 如何刪除冗餘陣列對象
- 11. 刪除/從陣列
- 12. JavaScript - 從陣列中刪除
- 13. 如何從陣列中刪除空對象?
- 14. 使用UISwitch從陣列中刪除對象
- 15. 從陣列中刪除重複的對象在JavaScript
- 16. 如何使用LINQ從陣列中刪除對象
- 17. 如何從使用貓鼬的陣列中刪除對象
- 18. Lodash刪除從基於ID屬性的陣列中刪除對象
- 19. 從列表中刪除特定對象
- 20. 從C++列表中刪除對象
- 21. 從列表中刪除對象
- 22. 如何從列表中刪除對象
- 23. 刪除重複陣列,從陣列
- 24. 通過JComboBox中的選定項目從陣列列表中刪除對象
- 25. 從JSONArray中刪除對象
- 26. 從IEnumerable中刪除對象
- 27. 從UINavigationController中刪除對象
- 28. 從NSMutableArray中刪除對象
- 29. 從CoreData中刪除對象
- 30. 從對象中刪除值
這應該真的使用'===' – Alnitak 2011-05-01 19:24:34
哦,如果您有兩個或多個連續的匹配元素,它會失敗。 – Alnitak 2011-05-01 19:28:47
這是一個不好的方法。如果你刪除一個項目,那麼你會跳過'i ++'的下一個項目。一旦你刪除了一個項目,或者以相反的順序遍歷數組,則可以中斷。 – 2011-05-01 19:34:23