我构建了一个像这样的对象(jQuery):
var arr = { items : [] };
$.each(arr, (function (key, value) {
arr.items.push({
id : key,
param1 : "hello",
param2 : "world !"
});
});
我想要做的是在推送之前检查一下如果我的对象中已经有至少一个相同id,param1或param2的记录。
我知道我可以在推送之前插入$.each
,但可能有更清洁的解决方案?
答案 0 :(得分:3)
使用对象来跟踪先前看到的值。
ids = {};
param1s = {};
param2s = {};
$.each(array, function(key, value) {
if (!(key in ids || value.param1 in param1s || value.param2s in param2s)) {
items.push({
id: key,
value1: value.param1,
value2: value.param2
});
ids[key] = true;
param1s[value.param1] = true;
param2s[value.param2] = true;
}
});