-1

私はこのような配列を持っています:

[
        {
            "ID": 227886,
            "post_author": "54"
        },
        {
            "ID": 227545,
            "post_author": "18"
        },
        {
            "ID": 229317,
            "post_author": "22"
        },
        {
            "img": "bang.jpg",
            "id": 229317
        },
        {
            "img": "other.png",
            "id": 227886
        },
        {
            "img": "name.jpg",
            "id": 227545
        }
]

「img」を持つすべてのオブジェクトを、「ID」が「img」オブジェクトの「id」と等しいオブジェクトにプッシュしたいと考えています。

期待される結果:

[
        {
            "ID": 227886,
            "post_author": "54",
            "img": "other.png",
            "id": 227886
        },
        {
            "ID": 227545,
            "post_author": "18"
            "img": "name.jpg",
            "id": 227545
        },
        {
            "ID": 229317,
            "post_author": "22",
            "img": "bang.jpg",
            "id": 229317
        }  
]

「id」と「ID」が同じ同じ配列内の他のオブジェクト内にオブジェクトをプッシュするにはどうすればよいですか?

4

3 に答える 3

0

Object.assignこれは、a 配列のメソッドである b 配列を使用して行うことできます。そのように:map()

let c = a.map((row, index) => Object.assign({}, row, b[index]));

完全なスニペット:

let a = [
    {
        ID: 227886,
        post_author: "54",
    },
    {
        ID: 227545,
        post_author: "18",
    },
    {
        ID: 229317,
        post_author: "22",
    },
    {
        img: "bang.jpg",
        id: 229317,
    },
    {
        img: "other.png",
        id: 227886,
    },
    {
        img: "name.jpg",
        id: 227545,
    },
];

let b = [
    {
        img: "other.png",
        id: 227886,
    },
    {
        img: "name.jpg",
        id: 227545,
    },
    {
        img: "bang.jpg",
        id: 229317,
    },
];

let c = a.map((row, index) => Object.assign({}, row, b[index]));

console.log(c);

于 2021-03-09T08:19:08.390 に答える