2017-01-26 2 views
2

В данный момент мой объект JSON выглядит следующим образом:Перестроить этот JSON объект с JavaScript

[ 
    ["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" 
    } 
]; 

Любая помощь очень ценится.

+0

Что именно это вы пытаетесь сделать? – user2085143

ответ

2

Вы можете легко сделать это с Array.prototype.join():

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

Если первый массив вы вывесили известен как input.

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(", ") 
    } 
}) 
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/

1

Используйте цикл и Соединения:

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/

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(', ')})) 
+1

очень хорошая короткая версия – bukart

Смежные вопросы