如何合并两个json返回数组?

// 字段描述

var field = [{

    field: '服务器',

    display: 'host',

    visible: true,

    type: 'checkbox'

}, {

    field: '部门',

    display: 'department',

    visible: true,

    type: 'input'

}]




// 原始list数据

var list = [{

    id: 1,

    host: '1.1 .1 .1',

    department: '技术'

}]

将两个数组合并,并返回类似于以下形式的数组


[{

        id: 1,

        host: {

            field: '服务器',

            display: 'host',

            value: '1.1 .1 .1',

            visible: true,

            type: 'checkbox'

        },

        department: {

            field: '部门',

            display: 'department',

            value: '技术',

            visible: true,

            type: 'input'

        }

    }

]


汪汪一只猫
浏览 508回答 4
4回答

饮歌长啸

const result = list.map((item) => {    Object.keys(item).forEach((key) => {        const filterArr = field.filter((fieldItem) => fieldItem.display === key)        if (filterArr.length > 0) {            filterArr[0].value = item[key];            item[key] = filterArr[0];        }            });    return item;});console.log(result);

慕桂英546537

兄弟你说的是合并json吧 此处可以用arguments来做, 没个返回返回的JSON数据都看成一个参数 然后创建个新数组 用for in 循环合并。

aluckdog

嗨,思路供参考const fieldMap = new Map(field.map(d => [d.display, d]))const result = list.map(x =>  Object.keys(x).reduce((o, k) => {    o[k] = fieldMap.has(k) ? { ...fieldMap.get(k), value: x[k] } : x[k]    return o  }, {}))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript