我有3个大型CSV文件解析的对象数组。它们具有相同的格式:[{ count: 2, name: "foo", unique: false}, {count: 4, name: "foo", unique: false}]
,每个数组包含500个对象。我正在寻找一种优雅的方法来检查所有三个数组的名称键的值,如果它只存在于一个数组中,则将唯一键的布尔值更改为true。除了证明价格昂贵的蛮力方法外,我似乎无法想到任何事情。不必是香草javascript,下划线等都没问题。有任何想法吗?
答案 0 :(得分:2)
你可以连接3个数组然后用下划线搜索唯一身份(你说你不介意):
var all = a1.concat(a2).concat(a3)
_.uniq(all, function(obj){
return obj.count;
});
同样_.uniq(array, [isSorted], [iteratee])
为您提供了对数组进行排序以提高性能的选项,但如果值得的话,它还取决于程序的用例。
总的来说,在你知道它的问题之前,我不会过分担心性能。