是否有另一种方法可以在没有for循环的情况下从数组中删除元素?

时间:2015-08-10 09:05:34

标签: javascript

我正在使用此代码:

self.contents.forEach(function (elem, index) {
    if (elem['contentId'] === self.content.contentId)
        self.contents.splice(index, 1);
})

借助新的浏览器功能,您可以更轻松地从self.contents匹配contentId的{​​{1}}中删除该对象。

请注意,内容数组中只有一个对象具有Id

2 个答案:

答案 0 :(得分:2)

您可以使用键作为ID将对象存储到对象,然后通过索引对其进行检索:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/titleButton"
    android:background="@drawable/custom_button"/>

然后,你可以这样做:

//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),这样会更好(考虑更快)。

答案 1 :(得分:2)

只需使用

var array = [2, 5, 9];
array.indexOf(2);

在使用INDEX OF

之后返回元素的索引
array.splice(index, 1);

还有另一种方法,但它基于Jquery ... JQUERY $.inArray

$.inArray( ele, array );