为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2019-03-15 22:18:13
// 字段描述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'        }    }]
查看完整描述

4 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

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);


查看完整回答
反对 回复 2019-04-09
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

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


查看完整回答
反对 回复 2019-04-09
?
aluckdog

TA贡献1847条经验 获得超7个赞

嗨,思路供参考


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

  }, {})

)


查看完整回答
反对 回复 2019-04-09
  • 4 回答
  • 0 关注
  • 507 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信