2017-01-26 4 views
2

diese Im Moment sieht mein JSON-Objekt wie:dieses JSON-Objekt neu erstellen mit JavaScript

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

Was würde Ich mag am Ende sehen, ein neues Objekt, das wie folgt aussieht:

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

Jede Hilfe wird sehr geschätzt.

+0

Was genau ist es Sie versuchen zu tun? – user2085143

Antwort

2

Sie können dies ganz einfach mit Array.prototype.join():

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

Wenn das erste Array, das Sie als input bekannt geschrieben.

2

Lösung mit .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

Sie diese einfach mit der Methode Karte tun können (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); 

hier ist eine Geige mit ihm https://jsfiddle.net/bukart/pg6b3evr/

1

Verwendung einer for-Schleife und beitreten:

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

Arbeits Beispiel: 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

sehr schöne kurze Version – bukart