获取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有中断。那么,为什么不将这两个任务中的一个与想要的任务结合起来呢?