操作JSON对象数组

问题描述 投票:0回答:1

长话短说,我有一个没有键的JSON对象数组。我试图通过HTML推送每个对象,但是,我重复了要合并的数据。我正在通过AJAX调用获取此数组,不确定是否应在调用期间或之后实现某些东西。

我的数据看起来像这样:

myData =[{Title:'Test', Dates:'11/12/14-/n11/14/14', Code:'A1B2C3'},
         {Title:'Test', Dates:'10/12/14-/n10/14/14', Code:'D1E2F3'},
         {Title:'Test', Dates:'11/12/14-/n11/14/14', Code:'D1E2F3'},
         {Title:'Test2', Dates:'01/12/14-/n01/14/14', Code:'H1J2K3'}]

AJAX看起来像这样:

$.ajax({
    url: ckURL,
    async: false,
    dataType: 'json',
    success: function(data) {
        myData= data;
    }
});

我希望myData看起来像:

myData =[Test:{Dates:['11/12/14-/n11/14/14','10/12/14-/n10/14/14'], Code:['A1B2C3','D1E2F3']},
         Test2:{Dates:'01/12/14-/n01/14/14', Code:'H1J2K3'}]

或类似这样:

myData =[{Title:'Test', Dates:['11/12/14-/n11/14/14','10/12/14-/n10/14/14'], Code:['A1B2C3','D1E2F3']},
         {Title:'Test2', Dates:'01/12/14-/n01/14/14', Code:'H1J2K3'}]

如果您有解决方法的想法,将不胜感激。感谢您阅读到此为止。

javascript jquery arrays json ajax
1个回答
0
投票

你好,欢迎上船!

[Mapreduce是你的朋友。

这里是如何到达您发布的第一个结构的示例:

myData.reduce((data, item) => {
  const d = data[item.Title];
  if (d) {
    d.Dates.push(item.Dates);
    d.Code.push(item.Code);
  } else {
    data[item.Title] = {
      Dates: [item.Dates],
      Code: [item.Code]
    };
  }
  return data;
}, {}); 
© www.soinside.com 2019 - 2024. All rights reserved.