gpt4 book ai didi

JavaScript 将对象数组缩减为对象字典

转载 作者:行者123 更新时间:2023-11-30 06:21:25 24 4
gpt4 key购买 nike

我读过这个answer在 SO 上尝试理解我哪里出错了,但还没有完全到达那里。

我有这个功能:

get() {
var result = {};

this.filters.forEach(filter => result[filter.name] = filter.value);

return result;
}

它变成了这个:

[
{ name: "Some", value: "20160608" }
]

为此:

{ Some: "20160608" }

我想,这正是 reduce 的用途,我有一个数组,我想要在它的末尾有一个值。

所以我是这样想的:

this.filters.reduce((result, filter) => {
result[filter.name] = filter.value;
return result;
});

但这不会产生正确的结果。

1) Can I use Reduce here?

2) Why does it not produce the correct result.

根据我的理解,第一次迭代的结果将是某种描述的空对象,但它是数组本身。

那么您将如何在第一次迭代中重新定义它 - 这些想法会让人觉得在这种情况下它是不对的!

最佳答案

将初始值设置为对象

this.filters = this.filters.reduce((result, filter) => {
result[filter.name] = filter.value;
return result;
},{});
//-^----------- here

var filters = [{
name: "Some",
value: "20160608"
}];

filters = filters.reduce((result, filter) => {
result[filter.name] = filter.value;
return result;
}, {});

console.log(filters);

var filters = [{
name: "Some",
value: "20160608"
}];

filters = filters.reduce((result, {name, value}= filter) => (result[name] = value, result), {});

console.log(filters);

关于JavaScript 将对象数组缩减为对象字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52824983/

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