【发布时间】:2019-02-03 23:04:15
【问题描述】:
这是我的代码:
const array1 = [{a: 'abc', b: 'cd'}, {a: 'abc', b: 'xyz'}, {a: 'abc',
b: 'mno'}];
let obj = array1.reduce(function(result, item, index){
result[index] = item
return result;
}, {});
let dealId = 123;
let value = {};
let array2 = [];
for (var property in obj) {
value[dealId] = array2.push(obj[property]);
}
console.log(value)
这个的输出是
Object { 123: 3 }
但我想要,这正是我所期待的。
Object { 123: [{a: 'abc', b: 'cd'}, {a: 'abc', b: 'xyz'}, {a: 'abc', b: 'mno'}] }
为什么我得到 3 而不是数组?如何获得数组?
【问题讨论】:
-
Push 返回数组的新长度。将分配移到循环之外。此外,您可以简单地使用
Object.values(obj)代替(不同之处在于不会列出继承的属性)。
标签: javascript object ecmascript-6 hashmap namespaces