gpt4 book ai didi

javascript - 循环遍历一个数组,将每个项目添加到一个对象并将其推送到 Javascript 中的数组

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:22 26 4
gpt4 key购买 nike

我有一个 ID 数组,如下所示:

[121, 432, 322]

我希望将所有这些添加到以下格式的数组中(预期输出):

[
{
"term": {
"brand_id": 121
}
},
{
"term": {
"brand_id": 432
}
},
{
"term": {
"brand_id": 322
}
}
]

我能够获得正确的结构并获得几乎符合预期的结果。但是我最终只有最后一个值作为对象所有项目中的值,如下所示(当前输出):

[
{
"term": {
"brand_id": 322
}
},
{
"term": {
"brand_id": 322
}
},
{
"term": {
"brand_id": 322
}
}
]

我的代码如下:

The array of IDs is in an array named brands.

let brands_formated = [];
//I have the array stored in `brands`
let format = { "term" : {
"brand_id": 0 //will be replaced
}
};

brands.forEach(function(brand) {
//The structure for brand query
format.term.brand_id = brand;
//Check if the right brand is format. Outputs as desired.
console.log(format);
brands_formated.push(format);

});

尽管循环中的 console.log 确认迭代正确。最终输出只有一个值。

最佳答案

您目前只有一个变量用于format - 您只会将一项插入数组,您只是多次改变它,导致数组包含 3 个相同的引用对象。

改为在每次迭代时创建格式。在将一个数组转换为另一个数组时,.map.forEach 更合适:

const input = [121, 432, 322];
console.log(
input.map(brand_id => ({ term: { brand_id }}))
);

关于javascript - 循环遍历一个数组,将每个项目添加到一个对象并将其推送到 Javascript 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51811954/

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