簡體   English   中英

將二維數組轉換為對象數組

[英]Convert a two dimensional array into an array of objects

我有一個二維數組datas ,我想將其轉換為對象數組。

鍵位於datas[0] ,我想提取它們, namechildsize 然后將每個屬性附加到該屬性以獲得一個主對象。 由於某種原因,它會覆蓋並且僅在我嘗試執行此操作時才顯示一個對象?

var test = new Object();
for (i = 0; i < datas.length; i++){
    var obj = new Object();
    obj.name = datas[i][0];
    obj.parent = datas[i][1];
    obj.size = datas[i][2];
    test.update(obj);
}

我希望最終結果是:

[
    {"name": "Billy", "parent":"Ann", "size": "1"},
    {"name": "Ben", "parent": "John", "size": "1"},
     etc...
]

datas數組如下所示:

 [["Name", "Parent", "Size"], ["Billy", "Ann", "1"], ["Ben", "John", "1"] ... ]

您不能使一個沒有屬性的對象,因此無法實現您想要的結果。

假設您要:

[
    {"name": "Billy", "parent": "Ann", "size": "1"},
    {"name": "Ben", "parent": "John", "size": "1"},
     etc...
]

嘗試:

var test = [];
for(i = 0; i < datas.length; i++){
  test.push({
    name: datas[i][0],
    parent: datas[i][1],
    size: datas[i][2]
  });
}
// do something with test
{
  {"name": "Billy", "parent":"Ann", "size"="1"},
  {"name": "Ben", "parent": "John", "size" = "1"}
}

不正確的json。 大括號的意思是-對象,對象必須以key:value形式出現。 有兩種可能的這種正確的json:

對象數組

[
  {"name": "Billy", "parent":"Ann", "size"="1"},
  {"name": "Ben", "parent": "John", "size" = "1"}
]

深層結構

{
  "Billy" {"parent":"Ann", "size"="1"},
  "Ben" {"parent": "John", "size" = "1"}
}

產生第一個變體

    var res = []
    for(i = 0; i<datas.length; i++){
      var obj = new Object();
      obj.name = datas[i][0];
      obj.parent = datas[i][1];
      obj.size = datas[i][2];
      res.push(obj);
    } 
    JSON.stringify(res);

產生第二個變體

    var res = new Object();
    for(i = 0; i<datas.length; i++){
      var obj = new Object();
      obj.parent = datas[i][1];
      obj.size = datas[i][2];
      res.[datas[i][0]] = obj;
    } 
    JSON.stringify(res);

暫無
暫無

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

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