我有一个带键的对象和一个像这样的数组值:
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);
});
答案 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]);
});
答案 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;