我正在使用这段代码:
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
最佳答案
您可以将您的元素存储到一个对象中,并将键作为它们的 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)
,哪个更好(考虑它更快)。
关于javascript - 还有另一种方法可以在没有 for 循环的情况下从数组中删除元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31915572/