我需要能够为数组添加删除功能。我有多种方式可以做到:
arr.remove(item)
这样的代码,但是我希望避免使用原型。remove(arr, item);
这样的东西,这很好,但不如arr.remove(item);
其他一些方法,你可能会建议。
我还想注意一点:knockoutjs observableArray有删除方法。这是有道理的,因为可观察数组无论如何都要包装js数组。因此添加了一些额外的方法
Angularjs没有这种数组方法。关于数组项的所有问题删除建议使用下划线无。在我看来,由于角度中的数组没有被包裹,纯js数组没有添加开销。如果你需要删除元素,你应该使用一些util函数,比如_.without或你自己的函数。
所以最后 - 每种方法的优点和缺点是什么? [1]:http://underscorejs.org/#without
答案 0 :(得分:0)
您可以尝试重现jQuery模式($()
):$(arr).remove(item)
。 Lodash实际上已经提供了这个功能:http://lodash.com/docs#_。
一个有趣的链接:http://perfectionkills.com/extending-built-in-native-objects-evil-or-not/。
答案 1 :(得分:0)
我认为还有另一种方法,创建一个Array的子类,但对于Javascript来说,“inherit”绝非易事。这个article可能会有所帮助。
<击> 您可以使用array.splice来实现“删除”元素。
例如
array.splice(i, 1)
将删除位置i处的元素
击>