将数组更改为对象

win*_*f88 -2 javascript arrays

在Javascript中,我正在寻找转换的最佳方式:

var data1 = [["ff",4],["gg",3],["dd",2],["hh",1]];
Run Code Online (Sandbox Code Playgroud)

至:

var data2 = [
  {word: "ff", frequency: 4},
  {word: "gg", frequency: 3},
  {word: "dd", frequency: 2},
  {word: "hh", frequency: 1}
]
Run Code Online (Sandbox Code Playgroud)

首先会创建一个对象:

var data2 = {};
Run Code Online (Sandbox Code Playgroud)

然后通过For循环运行它以使用data1内容填充它.

for (i = 0; i < data1.length; i++) {
  data2[word] = data1[i][0];
  data2[frequency] = data1[i][1];
}
Run Code Online (Sandbox Code Playgroud)

小智 6

将数组中的元素(元组)映射到相应的对象:

data2 = data1.map(function(pair) {
   return {word: pair[0], frequency: pair[1]};
});
Run Code Online (Sandbox Code Playgroud)

在ES6环境中:

data2 = data1.map(([word, frequency]) => ({word, frequency}));
Run Code Online (Sandbox Code Playgroud)

我的,多么简洁.