获取JavaScript对象中每个键的值

获取JavaScript对象中每个键的值,javascript,arrays,object,Javascript,Arrays,Object,我有一个带有键的对象和一个数组值,如下所示: var obj = { key1: ['value1','value2','value3'], key2: ['value1','value2','value3'], key3: ['value1','value2','value3'], key4: ['value1','value2','value3'] }; 我想要的是获取每个键的数组 我该怎么做 我使用Object.keys编写了一个函数,但它只获取对象的键: Obj

我有一个带有键的对象和一个数组值,如下所示:

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);
});

不确定以后要对值执行什么操作,但如果只想将所有值放入一个数组中,只需执行以下操作即可

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

   allValues.concat(obj[key]);

});

不确定以后要对值执行什么操作,但如果只想将所有值放入一个数组中,只需执行以下操作即可

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

   allValues.concat(obj[key]);

});
使用obj[键]访问对象obj中键的值

更好的迭代器是

使用obj[键]访问对象obj中键的值

更好的迭代器是


可以使用以下命令循环对象中的项:

for (item in obj) {
  console.log(obj[item]);
}
obj[item]将为您提供每个数组


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

您可以使用以下方法循环对象中的项:

for (item in obj) {
  console.log(obj[item]);
}
obj[item]将为您提供每个数组

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

这很有效

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]);
});
参见小提琴:

这很有效

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]);
});

请参阅Fiddle:

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

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

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

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

仅举一个例子,说明如何与

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

如果回调返回true,则返回短电路。它停止迭代。 var obj={ 键1:['value1','value2','value3'], 键2:['value1','value2','value3'], 键3:[value1',42',value3'], 键4:['value1'、'value2'、'value3'] }; Object.keysobj.somefunction k{ 文档。写'k:'+k+; if~obj[k].indexOf42{ 写下“在”+k中找到答案”; 返回true; }
}; 仅举一个例子,说明如何与

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

如果回调返回true,则返回短电路。它停止迭代。 var obj={ 键1:['value1','value2','value3'], 键2:['value1','value2','value3'], 键3:[value1',42',value3'], 键4:['value1'、'value2'、'value3'] }; Object.keysobj.somefunction k{ 文档。写'k:'+k+; if~obj[k].indexOf42{ 写下“在”+k中找到答案”; 返回true; }
};以后要如何处理这些值?可以把它们全部放在一个数组中吗?试试console.logobj[key];谢谢,这对我来说很有吸引力:你以后想用这些值做什么?可以把它们全部放在一个数组中吗?试试console.logobj[key];谢谢,对我来说很有魅力。我可以问一下为什么。。in比另一个更好?因为在前面,您使用Object.keysobj计算键,然后使用forEach进行迭代,这有其自身的限制,因为您无法打破它。相反,在以后的时间里,你只是试图访问任何进来的东西。它看起来也很整洁。您正在比较Object.keys与。。。在和循环的中断。key没有循环,但有其他数组方法。Array.prototype.each有中断,Array.prototype.some有中断。那么,为什么不将这两个任务中的一个与想要的任务结合起来呢?我可以问一下为什么。。in比另一个更好?因为在前面,您使用Object.keysobj计算键,然后使用forEach进行迭代,这有其自身的限制,因为您无法打破它。相反,在以后的时间里,你只是试图访问任何进来的东西。它看起来也很整洁。您正在比较Object.keys与。。。在和循环的中断。key没有循环,但有其他数组方法。Array.prototype.each有中断,Array.prototype.some有中断。那么,为什么不将这两个任务中的一个与想要的任务结合起来呢?