将多个JSON中的数据附加到一个对象



我在'pl'文件夹中获得了31个json文件,命名为'objects_p=1', 'objects_p=2'等。每个包含50个值,除了最后一个(24个值)。试图将所有数据提取到一个对象中:

let sourceObj={};
for (let i=1;i<32;i++){
fetch(`pl/objects_p=${i}`)
.then((response) => response.json())
.then((data) => {
let new_obj = Object.assign(sourceObj,data);
sourceObj = new_obj
});
}

基本上,我尝试在循环中向newObj追加数据。但当控制台。记录sourceObj,我只得到最后24个值,而不是预期的1524。错在哪里?

对象。如果属性已经存在,赋值只需替换值即可。它只适用于不同的值Mozilla doc

从链接:

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
// Expected output: Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget === target);
// Expected output: true

编辑

对象不能有重复的属性,你可以简单地使用一个数组来存储你所有的对象

let sourceObj={};
let allSources=[sourceObj].
for (let i=1;i<32;i++){
fetch(`pl/objects_p=${i}`)
.then((response) => response.json())
.then((data) => {
allSources.push(data)
});
}

最新更新