迭代对象并列出所有找到的匹配输入的属性

时间:2016-10-14 16:18:05

标签: javascript object if-statement for-loop for-in-loop

我试图解决我的JavaScript问题。我有一个有很多属性的对象。我想迭代属性以查找用户输入的所有条目。我写了一个for..in-loop但它没有给我任何信息。

有什么想法吗?

var numbers = {
    "Group1": "3300",
    "Group2": "1200",
    "Group3": "5000"
};

function test(){

        var input = document.getElementById("inputTxt").value;

        for(var group in numbers){

             if(numbers[group] == input){
                 console.log(numbers[group])
             }
        }           
}

此代码在我的控制台中没有记录任何内容。我究竟做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

尝试

Object.keys(numbers).forEach((key) => {
    if (numbers[key] == input) {
        console.log(key + " " + numbers[key]);
    }
});

答案 1 :(得分:1)

我在这里创建了一个plnkr,

https://plnkr.co/edit/cpdipV2qxAUa4pHtdKqA?p=preview

似乎有效

for(var group in numbers){

             if(numbers[group] == input){
                 console.log(numbers[group])
             }
        } 

答案 2 :(得分:0)

适用于for循环

var numbers = { "Group1": "3300", "Group2": "1200", "Group3": "5000" };
var input = "3300";
for(var group in numbers)
   if(numbers[group] == input)
      console.log(group + " " + numbers[group]); // Group1 3300