2016-08-23 6 views
0

Ich möchte meine Zeichenfolge als, was unten angezeigt wird.String Verkettung mit Knoten js

var ww = '{"q" : ["sdsds","Dog"] }'; 

Ich habe eine Variable namens var arr. Wenn ich console.log(arr) die Ausgabe bekomme, ist Elephant,Dog. Wie kann ich die Variable ww mit der Variablen arr darin neu erstellen?

+2

Warum rufen Sie diese "String-Verkettung"? Wie auch immer, erstellen oder manipulieren Sie JSON nicht mit der String-Arithmetik. Verwandle 'ww' in ein JavaScript-Objekt mit' JSON.parse', ersetze die Eigenschaft 'q' durch' object.q = arr; ', und verwandle ihn dann wieder in eine JSON-Zeichenkette mit' JSON.stringify'. –

+0

Ich verstehe Ihre Lösung nicht. Kannst du es ausarbeiten? – Illep

Antwort

-2

lodash Bibliothek verwenden es leicht getan werden könnte, wie:

var _ = require('lodash'); 

var arr = '["Elephant", "Dog"]'; 

var ww = '{"q" : ["sdsds","Dog"] }'; 

arr = JSON.parse(arr); // skip if arr is javascript array 
ww = JSON.parse(ww); // skip if ww is javascript object 
ww.q = _.union(arr, ww.q); 

ww = JSON.stringify(ww); //skip if ww is already javascript object 

Ich hoffe, dass es helfen wird.

+0

Irgendein besonderer Grund, lodash zu benutzen? Dies erscheint nicht komplizierter als 'www.q.push (... arr)'. –

+0

Die www.q.push (arr) behält die doppelten Einträge. Ich habe die lodash Union-Funktion verwendet, um doppelte Einträge zu entfernen. Wenn Sie jedoch doppelte Einträge behalten möchten, können Sie auch die Array-Push-Methode verwenden. –

0

Darf ich vorschlagen, ein Template Literal zu verwenden, das Teil von ES2015 ist. Ich gehe davon aus, dass das gesamte Array übergeben wird und dass Sie eine JSON-Zeichenfolge haben möchten. Bitte ändern Sie das gewünschte Ausgabeformat.

var arr1 = ['ssds', 'dog'] 
var arr2 = ['elephant', 'dog'] 

function buildWW(arr) { 
    return JSON.stringify(`{q: [${arr}]}`) 
} 

var ww = buildWW(arr1) 
console.log(ww) 

ww = buildWW(arr2) 
console.log(ww)