我们是在2016年,所以,我想知道在考虑到性能和干净代码的情况下将非重复项插入数组的最佳方法。
编辑:
例如:
我的目标是:
obj = {id: 1, a: 2, b: 3, c: 4}
我的阵列arr:
arr.push(obj);
arr.push(obj); // Avoid this duplicate obj
谢谢。
答案 0 :(得分:1)
语言中没有原生pushIfUnique
,因此您必须选择:
(1)如果排序不重要只需使用Map
和id
(或其他)作为标识符。
(2)如果排序很重要,您可以使用Array.find
编写一个小帮助函数。 E.g:
const pushIfUnique = (predicate, object, array) => {
if (!array.find(item => predicate(object, item))) {
array.push(object);
}
};