检查对象键值是否存在,如果是,则获取另一个键值

时间:2017-01-04 14:05:05

标签: javascript object

如何检查"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');
    }

}

任何输入都非常感谢,谢谢。

1 个答案:

答案 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...inhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

简单的解决方案:

{{1}}

BTW:检查平等使用' =='或者' ===',不是' ='。