有没有别的方法可以不使用for循环从数组中删除一个元素?
Is there another way to remove an element from an array without a for loop?
我正在使用这个代码:
self.contents.forEach(function (elem, index) {
if (elem['contentId'] === self.content.contentId)
self.contents.splice(index, 1);
})
使用新的浏览器功能,是否有更简单的方法从self.contents
中删除具有contentId
匹配self.content.contentId
的对象。
请注意,在contents数组中只有一个对象具有Id
您可以将元素存储到一个以key作为ID的对象中,然后通过索引来检索它们:
//Procedure to add in the object, modify to meet your needs.
var storeObject = {};
storeObject[1] = elemWithID1;
storeObject[5] = elemWithID5;
然后,你可以这样做:
elem = storeObject[self.content.contentId];
考虑到在这种情况下实际使用哈希表,此映射可能具有平均的O(1)
复杂度,而不仅仅是通过迭代搜索,将具有O(n)
,这更好(考虑它更快)。
就用
var array = [2, 5, 9];
array.indexOf(2);
使用
array.splice(index, 1);
有另一种方法,但它是基于Jquery的… JQUERY美元.inArray
$.inArray( ele, array );
可以使用map函数
var pos = self.contents.map(function (e){
return e.contentId;
}).indexOf(self.content.contentId);
self.contents.splice(pos, 1);
相关文章:
- Mongoose-在更新中删除数组元素
- 在特定索引处剥离/删除数组中的值
- Framework7:使用swipeout删除数组中的项
- Javascript删除数组中某个位置之后的项
- 通过选中和取消选中复选框来添加和删除数组中的值
- 编写删除数组并添加到列表的函数
- Javascript - 删除数组中的重复值
- 在 Kineticjs 中删除数组中的组
- 如何根据数组内容添加/删除数组中的元素
- 用于删除数组中的零的Javascript函数代码
- Javascript-仅使用pop()方法删除数组中的负值
- 删除数组元素并将它们添加回原来的位置
- 如果一个键匹配,如何删除数组元素
- 无法使用拼接删除数组中的元素
- 如何从ko.computed中删除数组项
- 删除数组中的重复项,为什么此代码不起作用
- 使用另一个数组按索引删除数组中的对象
- 在 jquery 中,如何通过索引[“键”] 或值删除数组元素
- 使用 Lodash 删除数组中的元素
- 按索引删除数组元素