Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

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

如何转换这种数据格式?

头一次遇到 惭愧 竟然懵逼了无从下手。求大佬指点

image.png

var dataA = [
  { cid: 125, name: 'y1' },
  { cid: 845, name: 'y2' },
  { cid: 956, name: 'y3' },
  { cid: 634, name: 'y4' },
]

var dataB = [
  { uid: 984, name: 'x1' },
  { uid: 9634, name: 'x2' },
  { uid: 6574, name: 'x3' },
  { uid: 39764, name: 'x4' },
  { uid: 3164, name: 'x5' },
  { uid: 7421, name: 'x6' },
]

var dataC = [
  { id: 1245, cid: 125, uid: 984 },
  { id: 1237, cid: 845, uid: 3164 }
]


//期待数据 将上述三条数据转换成  如下
var corssData = [
  [
    'y1',
    { cid: 125, uid: 984, id: 1245, exist: true },
    { cid: 125, uid: 9634, id: null, exist: false },
    { cid: 125, uid: 6574, id: null, exist: false },
    { cid: 125, uid: 39764, id: null, exist: false },
    { cid: 125, uid: 3164, id: null, exist: false },
    { cid: 125, uid: 7412, id: null, exist: false },
  ],
  [
    'y2',
    { cid: 845, uid: 984, id: null, exist: false },
    { uid: 9634, cid: 125, id: null, exist: false },
    //...诸如此类
  ],
  // ...诸如此类
]

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

1 Answer

0 votes
by (71.8m points)
var corssData = dataA.map(iA => {
  return [iA.name, ...dataB.map(iB => {
    var c = dataC.find(iC => iC.cid === iA.cid && iC.uid === iB.uid)
    return {
     cid: iA.cid, uid: iB.uid, id: c && c.id, exist: !!c
    }
  })]
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...