假设我有:
var original = {
0: {
id : 158
},
1: {
id : 159
}
}
var newSeries = {
0: {
id : 158,
name: "Jason",
lastname: "Smith",
status : "active"
},
1: {
id : 159 ,
name: "Rebecca",
lastname: "Smith",
status : "terminated"
}
}
我希望知道id
newSeries
original
中存在来自in
的{{1}},我将如何进行此操作?我找到了使用{{1}}运算符的部分解决方案,但只比较了它们的键而不是键和值。
答案 0 :(得分:1)
如果您计划进行大量此类处理,我建议使用underscorejs。它有通过传递lamda函数,过滤,排序,合并,转换和许多其他功能来查找值的方法
使用underscorejs一个衬垫:
_(original).find(function(x) { return x.id == 159; })
答案 1 :(得分:1)
试试这个:
for (var n in newSeries) {
console.log('id ' +
newSeries[n].id +
' exists: ' +
(original[n].id === newSeries[n].id));
}
答案 2 :(得分:0)
你必须遍历每个键和值来测试id是否存在。
例如
var myId = 158;
for (var key in original) {
if (original[key].id === myId) {
// here your id has been found
}
}
如果您不想像这样循环浏览对象,则必须稍微更改数据结构。您可以使用id作为原始对象中的键,并按如下方式搜索:
var original = {
158: {
id : 158
},
159: {
id : 159
}
};
var myId = 158;
if (myId in original) {
// here your id has been found
}
答案 3 :(得分:0)
如果你的目标是ES5:
function isValueInObject(value, object) {
return Object.keys(object).map(function (key) {
return object[key];
}).some(function (_value) {
return _value === value;
});
}
console.log(isValueInObject('bar', {foo: 'bar'})) // true
console.log(isValueInObject('baz', {foo: 'bar'})) // false