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

Categories

var array1 = [{"id": 30,"isOpen": 0},{"id": 40,"isOpen": 1},{"id": 50,"isOpen": 0}]

var array2 = [{"type": "android","list": [{"id": "30","isShow": true}, {"id": "40","isShow": true}]},{"type": "iOS","list": [{"id": "50","isShow": true}]}]

我现在要拿array2和array1的匹配,先拿到array2的list里面的数据,取出id和array1数组里面的匹配,如果匹配到了id一样的,判断isOpen为0,就把array2匹配到的数据里面的isShow改成false,isOpen=1就改成isShow改成true。


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

1 Answer

var array1 = [{"id": 30,"isOpen": 0},{"id": 40,"isOpen": 1},{"id": 50,"isOpen": 0}]

var array2 = [{"type": "android","list": [{"id": "30","isShow": true}, {"id": "40","isShow": true}]},{"type": "iOS","list": [{"id": "50","isShow": true}]}]

array2.reduce((ids,item) => {
  item.list.forEach(v => {
    if(v.id in ids) v.isShow = ids[v.id] == 1
  })
  return ids;
}, array1.reduce((res,v) => {
  res[v.id] = v.isOpen;
  return res;
}, {}))


console.log(array2)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...