获取JavaScript对象中每个键的值

时间:2016-01-07 07:07:01

标签: javascript arrays object

我有一个带键的对象和一个像这样的数组值:

var obj = {
   key1: ['value1','value2','value3'],
   key2: ['value1','value2','value3'],
   key3: ['value1','value2','value3'],
   key4: ['value1','value2','value3']
};

我想要的是获取每个键的数组。

我该怎么做?

我使用Object.keys编写了一个函数,但它只获取对象的键:

Object.keys(obj).forEach(function (key) {

   console.log(key);
});

6 个答案:

答案 0 :(得分:2)

使用obj[key]访问对象key中密钥obj的值。

Object.keys(obj).forEach(function (key) {
   console.log(obj[key]);  // Will be an array
});

更好的迭代器将是for...in

for (key in obj) {
  console.log(obj[key]);
}

答案 1 :(得分:2)

您可以使用以下方法遍历对象中的项目:

for (item in obj) {
  console.log(obj[item]);
}

obj[item]将为您提供每个数组。

使用现有解决方案,您需要将key更改为obj[key]

答案 2 :(得分:2)

这有效..

var obj = {
   key1: ['value1','value2','value3'],
   key2: ['value1','value2','value3'],
   key3: ['value1','value2','value3'],
   key4: ['value1','value2','value3']
};
Object.keys(obj).forEach(function (key) {
   console.log(obj[key]);
});

请参阅小提琴:https://jsfiddle.net/5t4c4sg8/

答案 3 :(得分:0)

不确定以后要对值做什么,但是如果你只是想将它们全部放在一个数组中那么只需要

var allValues = [];
Object.keys(obj).forEach(function (key) {

   allValues.concat(obj[key]);

});

答案 4 :(得分:0)

这将获得所有关键值&然后你可以将该数组推送到特定的数组

for(var key in obj)
    console.log(obj[key])

答案 5 :(得分:0)

仅举例说明如何将Object.keys()Array.prototype.some()

结合使用
  

some()方法测试数组中的某个元素是否通过了由提供的函数实现的测试。

如果回调返回true,则为短路。它会停止迭代。



var obj = {
    key1: ['value1', 'value2', 'value3'],
    key2: ['value1', 'value2', 'value3'],
    key3: ['value1', 42, 'value3'],
    key4: ['value1', 'value2', 'value3']
};

Object.keys(obj).some(function (k) {
    document.write('k: ' + k + '<br>');
    if (~obj[k].indexOf(42)) {
        document.write('Found the answer in ' + k);
        return true;
    }
});
&#13;
&#13;
&#13;