使用JavaScript重建此JSON对象

时间:2017-01-26 14:44:28

标签: javascript json

目前我的JSON对象如下所示:

[
  ["GB", "gib", "gigabyte", "gigabytes"],
  ["MB", "mib", "megabyte", "megabytes"],
  ["Television", " Televisions", " TV", " TVs"],
  ["tryouts", "tryout", "tests", "test", "trial", "experiment"],
  ["football", "soccer", "Fussball"]
];

我最终想看到的是一个看起来像这样的新对象:

[
  {
    synonyms: "GB, gib, gigabyte, gigabytes"
  },
  {
    synonyms: "MB, mib, megabyte, megabytes"
  },
  {
    synonyms: "Television, Televisions, TV, TVs"
  },
  {
    synonyms: "tryouts, tryout, tests, test, trial, experiment"
  },
  {
    synonyms: "football, soccer, Fussball"
  }
];

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.join()轻松完成此操作:

var output = [];
for (var i = 0; i < input.length; i++) {
    output.push({
        synonyms: input[i].join(', ');
    });
}

您发布的第一个数组称为input

答案 1 :(得分:2)

.map()的解决方案:

var myArray = [
    ["GB", "gib", "gigabyte", "gigabytes"],
    ["MB", "mib", "megabyte", "megabytes"],
    ["Television", " Televisions", " TV", " TVs"],
    ["tryouts", "tryout", "tests", "test", "trial", "experiment"],
    ["football", "soccer", "Fussball"]
];

var synonymArray = myArray.map(function(list) {
    return {
        synonyms: list.join(", ")
    }
})

答案 2 :(得分:1)

您可以使用方法地图(https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/map

轻松完成此操作
input = [
  ["GB", "gib", "gigabyte", "gigabytes"],
  ["MB", "mib", "megabyte", "megabytes"],
  ["Television", " Televisions", " TV", " TVs"],
  ["tryouts", "tryout", "tests", "test", "trial", "experiment"],
  ["football", "soccer", "Fussball"]
];

output = input.map(function(d) {return {'synonyms':d.join(', ')};});

document.write(JSON.stringify(output));
console.log(output);

这里有一个小提琴https://jsfiddle.net/bukart/pg6b3evr/

答案 3 :(得分:1)

使用for循环并加入:

var newObject = [];
for (var i in originalArray) {
  var originalItem = originalArray[i];
  var textList = originalItem.join(',');
  newObject.push({synonyms:textList});
}

工作样本:https://jsfiddle.net/mspinks/v7a3xp7r/4/

答案 4 :(得分:1)

ES6:

[
  ["GB", "gib", "gigabyte", "gigabytes"],
  ["MB", "mib", "megabyte", "megabytes"],
  ["Television", " Televisions", " TV", " TVs"],
  ["tryouts", "tryout", "tests", "test", "trial", "experiment"],
  ["football", "soccer", "Fussball"]
].map(i => ({synonyms:i.join(', ')}))