Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
138 views
in Technique[技术] by (71.8m points)

如何用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'}];

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
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);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...