如何检查"username"
是否等于"name"
,如果是"id"
?
所以我正在尝试检查name
是否存在,如果存在,则获取id
。
var name="Lisa";
var users = [
{ id:"1234", username:"Claes", room: "General" },
{ id:"5678", username:"Lisa", room: "General" }
];
我试过这个,但我不知道我错过了什么?
for (username in users) {
if (!users.hasOwnProperty(username)) continue;
if (users[username]=name) {
nameexists = true;
id = users[id];
console.log('user exists'+users[id]);
}else{
nameexists = false;
console.log('user does not exist');
}
}
任何输入都非常感谢,谢谢。
答案 0 :(得分:0)
在Javascript中,语法for..of
用于迭代对象的属性,而不是数组。
请参阅http://www.dataanalytica.systems
要迭代一个数组,使用normal for for,Array for forEach方法或users.forEach(function(user) {
if (user.username) { // note this will expect a 'truthy' value i.e. except for false, 0, "", null, undefined, and NaN
nameexists = true;
id = user.id;
console.log('user exists'+user.id);
} else {
nameexists = false;
console.log('user does not exist');
}
}
语法(ES6)
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
简单的解决方案:
{{1}}
BTW:检查平等使用' =='或者' ===',不是' ='。