我有两个对象:
var obj = { first: "Romeo", last: "Montague" };
var search = { last: "Montague" };
我的目标是查找第一个对象(search
)是否存在于第一个对象中,console.log
是否存在。
首先,我得到两个对象的键:
var objKeys = Object.keys(obj);
var searchKeys = Object.keys(search);
然后我试图通过两个键进行迭代并比较它们,如果它们匹配,则console.log
来自第一个obj(obj
)的值。
//for every key in object
for(var x = 0; x < objKeys.lenght; x++) {
//for every key in search
for(var y = 0; y < searchKeys.length; y++) {
//see if a key matches
if(searchKeys[y] == objKeys[x]) {
//see if the value matches
if(obj[objKeys[x]] == search[searchKeys[y]]) {
console.log(obj[objKeys[x]]);
}
else {
console.log("value not found");
}
}
else {
console.log("key not found");
}
}
}
现在,当我运行此代码时,控制台中没有任何内容显示。没有错误或消息。谁能指出我做错了什么?
如果你想修补,我已经创建了jsFiddle这段代码。
答案 0 :(得分:0)
您在第一个循环中拼错了length
。
还可以考虑使用for-in
循环:
for (property in obj) {
if (obj.hasOwnProperty(property)) {
//...
}
}