gpt4 book ai didi

javascript - 如何从javascript中的索引属性获取值?

转载 作者:行者123 更新时间:2023-12-01 01:44:30 25 4
gpt4 key购买 nike

这是我的代码:

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)

这个的输出是对象 { 123: 3 }

但我想要,这就是我所期待的。
对象 { 123: [{a: 'abc', b: 'cd'}, {a: 'abc', b: 'xyz'}, {a: 'abc', b: 'mno'}] }

为什么我得到的是 3 而不是数组?如何获取数组?

最佳答案

Array.prototype.push返回数组的新长度,而不是数组本身。您的循环将值 1、2 和 3 分配给同一个 value[dealId]

相反,您可以将赋值移到循环之外:

for (var property in obj) {
array2.push(obj[property]);
}
value[dealId] = array2;

或者您可以简单地使用Object.values:

value[dealId] = Object.values(obj);

但请注意,这不会列出继承的属性。

关于javascript - 如何从javascript中的索引属性获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com