6

多数の 2 次元配列を保持する配列があります。

var myArray = [
    [2260146,2334221,"copy"],
    [1226218,2334231,"copy"],
    [2230932,-1,"copy"],
    [2230933,-1,"copy"],
    [2230934,-1,"copy"]
]

JSON として送信するには、この配列を次の形式のオブジェクトに変換する必要があります。

var json = [
  {
    "s_id": 2260146,
    "t_id": 2334221,
    "type": "copy"
  },
  {
    "s_id": 1226218,
    "t_id": 2334231,
    "type": "copy"
  },
  {
    "s_id": 12,
    "t_id": -1,
    "type": "copy"
  }
]

(「s_id」はmyArray[0][0]、「t_id」myArray[0][1]、「type」などである必要がありmyArray[0][2]ます。)

目的の形式で配列を取得するにはどうすればよいですか? 前もって感謝します。

4

3 に答える 3

10
json = myArray.map(function(x) {
    return {    
        "s_id": x[0],
        "t_id": x[1],
        "type": x[2]
    }
})

9 未満の IE ではマップがサポートされていないことに注意してください。

于 2013-01-18T11:28:20.210 に答える
2

試してみてください:

var length = myArray.length,
    json   = [];

for ( var i = 0; i < length; i++ ) {
  var subArray = myArray[i],
      item = {
        s_id: subArray[0],
        t_id: subArray[1],
        type: subArray[2]
      };
   json.push(item);
}
于 2013-01-18T11:27:54.153 に答える
2

でパラメーターを分解し、省略形のプロパティ名mapを使用できます。

const myArray=[[2260146,2334221,"copy"],[1226218,2334231,"copy"],[2230932,-1,"copy"],[2230933,-1,"copy"],[2230934,-1,"copy"]]

const output = myArray.map(([s_id, t_id, type]) => ({ s_id, t_id, type }))

console.log(output)

于 2019-08-15T19:31:33.703 に答える