簡體   English   中英

缺少要添加到 json object 密鑰的日期

[英]Missing dates to add in a json object of keys

I have two arrays one with constant dates and other with multiple JSON objects of dates, but the JSON objects have some missing dates how to add the missing dates from constant dates array to the second array of JSON objects

constantdates =  [
    'Jul 7', 
    'Jul 8',
    'Jul 9', 
    'Jul 10',
    'Jul 27', 
    'Jul 16',
    'Jul 30', 
    'Jul 26',
    'Jul 12', 
    'Jul 22',
    'Jul 17',
    'Jul 24',
    'Jul 19', 
    'Jul 14',
    'Jul 25', 
    'Jul 13',
    'Jul 23', 
    'Jul 15',
    'Jul 29', 
    'Jul 11',
    'Jul 28', 
    'Jul 21',
    'Jul 20', 
    'Jul 18'
  ]

myarray = [{
    name: 'Arun',
    address: 'hydrabad',
    worker: 'test',
    'Jul 11': 1425,
    'Jul 15': 1425,
    'Jul 16': 1475,
    'Jul 17': 1425,
    'Jul 21': 1475,
    'Jul 22': 1425,
    'Jul 23': 1475,
    'Jul 24': 1225,
    'Jul 25': 1425,
    'Jul 26': 1075,
    'Jul 27': 1475,
    'Jul 29': 1425,
    'Jul 30': 1325,
  },
  {
    name: 'Abi',
    address: 'delhi',
    worker: 'test',
    'Jul 11': 1425,
    'Jul 12': 1275,
    'Jul 13': 1475,
    'Jul 14': 1275,
    'Jul 15': 1425,
    'Jul 16': 1475,
    'Jul 17': 1425,
    'Jul 18': 1425,
    'Jul 19': 1475,
    'Jul 21': 1475,
    'Jul 22': 1425,
    'Jul 23': 1475,
    'Jul 24': 1225,
    'Jul 25': 1425,
    'Jul 26': 1075,
    'Jul 27': 1475,
    'Jul 29': 1425,
    'Jul 30': 1325
  }]

預計 Output

 [{
    name: 'Arun',
    address: 'hydrabad',
    worker: 'test',
    'Jul 7': null, 
    'Jul 8': null,
    'Jul 9': null, 
    'Jul 10': null,
    'Jul 11': 1425,
    'Jul 12': null,
    'Jul 13': null,
    'Jul 14': null,
    'Jul 15': 1425,
    'Jul 16': 1475,
    'Jul 17': 1425,
    'Jul 18': null,
    'Jul 19': null,
    'Jul 20': null,
    'Jul 21': 1475,
    'Jul 22': 1425,
    'Jul 23': 1475,
    'Jul 24': 1225,
    'Jul 25': 1425,
    'Jul 26': 1075,
    'Jul 27': 1475,
    'Jul 28': null,
    'Jul 29': 1425,
    'Jul 30': 1325,
  },
  {
    name: 'Abi',
    address: 'delhi',
    worker: 'test',
    'Jul 7': null, 
    'Jul 8': null,
    'Jul 9': null, 
    'Jul 10': null,
    'Jul 11': 1425,
    'Jul 12': 1275,
    'Jul 13': 1475,
    'Jul 14': 1275,
    'Jul 15': 1425,
    'Jul 16': 1475,
    'Jul 17': 1425,
    'Jul 18': 1425,
    'Jul 19': 1475,
    'Jul 20': null,
    'Jul 21': 1475,
    'Jul 22': 1425,
    'Jul 23': 1475,
    'Jul 24': 1225,
    'Jul 25': 1425,
    'Jul 26': 1075,
    'Jul 27': 1475,
    'Jul 28': null,
    'Jul 29': 1425,
    'Jul 30': 1325
  }]

使用reduce 在日期數組上減少回調使用forEach forEach回調中,從日期數組中獲取每個元素,並檢查 myArray 的 object 中是否存在相同的元素。 如果它不存在,則將其添加為新鍵並將值設置為 null。

 const dates = [ 'Jul 7', 'Jul 8', 'Jul 9', 'Jul 10', 'Jul 27', 'Jul 16', 'Jul 30', 'Jul 26', 'Jul 12', 'Jul 22', 'Jul 17', 'Jul 24', 'Jul 19', 'Jul 14', 'Jul 25', 'Jul 13', 'Jul 23', 'Jul 15', 'Jul 29', 'Jul 11', 'Jul 28', 'Jul 21', 'Jul 20', 'Jul 18' ] const myarray = [{ name: 'Arun', address: 'hydrabad', worker: 'test', 'Jul 11': 1425, 'Jul 15': 1425, 'Jul 16': 1475, 'Jul 17': 1425, 'Jul 21': 1475, 'Jul 22': 1425, 'Jul 23': 1475, 'Jul 24': 1225, 'Jul 25': 1425, 'Jul 26': 1075, 'Jul 27': 1475, 'Jul 29': 1425, 'Jul 30': 1325, }, { name: 'Abi', address: 'delhi', worker: 'test', 'Jul 11': 1425, 'Jul 12': 1275, 'Jul 13': 1475, 'Jul 14': 1275, 'Jul 15': 1425, 'Jul 16': 1475, 'Jul 17': 1425, 'Jul 18': 1425, 'Jul 19': 1475, 'Jul 21': 1475, 'Jul 22': 1425, 'Jul 23': 1475, 'Jul 24': 1225, 'Jul 25': 1425, 'Jul 26': 1075, 'Jul 27': 1475, 'Jul 29': 1425, 'Jul 30': 1325 } ] const newData = myarray.reduce((acc, curr) => { let obj = {} obj['fullName'] = curr.name; obj['address'] = curr.address; obj['worker'] = curr.worker; dates.forEach((item) => { if (curr.hasOwnProperty(item)) { obj[item] = curr[item] } else { obj[item] = null } }) acc.push(obj) return acc; }, []); console.log(newData)

不使用依賴項,只有一行:

myarray = myarray.map(w => Object.assign(constantdates.reduce((a, b) => (a[b] = null, a), {}), w))

減少采用日期數組並使其類似於 { 'Date': null },然后我們使用Object.assign將原始值復制到這些鍵上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM