将数据从多个JSON追加到一个对象

lf3rwulv  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(96)

我在'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。但是当console.logging sourceObj时,我只得到了最后24个值,而不是预期的1524个。错误在哪里?

34gzjxbg

34gzjxbg1#

如果属性已经存在,assign只替换值。它只对不同的值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)
                });
    }

相关问题