如何用es6处理如下数据?

let a = [{"key":[{"id":1,"value":'a'},{"id":3,"value":'b'}]},{"key":[{"id":2,"value":'aa'},{"id":4,"value":'bb'}]}];
let b = [{"index":1,"value":'va1'},{"index":2,"value":'va2'}];

如果a中id在b中的index 不存在,需要添加一个{"index":id值,"value":和id同级的value值}

期望数据

let c =  [{"index":1,"value":'va1'},{"index":2,"value":'va2'},{"index":3,"value":'b'},{"index":4,"value":'bb'}];
阅读 1.5k
1 个回答
var indexs = new Set( b.map(item => item.index) );
var mores = a.reduce((res, item) => {
  item.key.forEach(o => {
    if( !indexs.has(o.id) )
      res.push({index: o.id, value: o.value})
  })
  return res;
}, []);

var c = b.concat(mores);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题