提问人:nb_nb_nb 提问时间:5/11/2023 最后编辑:nb_nb_nb 更新时间:5/11/2023 访问量:24
在每次迭代中添加到对象,而无需替换
Add to object with every iteration without replacing
问:
我在函数之外有一个对象,我想在每次迭代中填充它,并在迭代完成后调用该对象,但我只能看到对象中的最后一个元素。如何添加到对象而不是替换对象?
我的代码:
let myobj = {};
const func1 = async (arg) => {
let table_id = result.data.internal_id;
const response = await axios_Func({ graphQL query });
console.log(`${response.data.name} - ${table_id}`);
myobj["name"] = response.data.name;
myobj["id"] = table_id;
await func2({ query: graphQL_query, table_id });
}
const func2 = async (result, table_id) => {
let dev = await getAllTables({ query: tables(123) });
let prod = await getAllTables({ query: tables(321) });
let prod_id = new Set();
result.data.data.table.table_fields.forEach((d) => {
if (d. connector != null && !(d.name in dev))
prod_id.add(prod[d.name]["id"]);
});
prod_id = [...prod_id];
prod_id.map((x) => createOne({ query: graphQL_query(x) });
return Promise.all(prod_id.map((x) => func1({ query: graphQL_query(x) }));
});
const callback = () => console.log(myobj);
const execute = async () => {
await func1()
callback()
}
myobj
返回对象中的最后一个元素,而不是它应该填充的 5 个元素。
如何让我的对象具有所有元素?
答:
1赞
Barmar
5/11/2023
#1
您需要一个数组来保存多个对象。
let myarray = [];
const func1 = async (arg) => {
let table_id = result.data.internal_id;
const response = await axios_Func({ graphQL query });
console.log(`${response.data.name} - ${table_id}`);
const myobj = {};
myobj["name"] = response.data.name;
myobj["id"] = table_id;
myarray.push(myobj);
await func2({ query: graphQL_query, table_id });
}
评论
myobj
func1
func2
forEach
func2
await func2
func1
func2
func1
forEach