2016-08-23 7 views
0

文字列を下に示すように表示します。ノードjsを使用した文字列連結

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

私はvar arrという変数を持っています。私がconsole.log(arr)の出力を得るときはElephant,Dogです。

arrという変数を使用して変数wwを再作成するにはどうすればよいですか?私はそれに役立つことを願っています

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 

:として

+2

なぜこの「文字列連結」を呼び出していますか?とにかく、文字列演算を使用してJSONを作成したり操作したりしないでください。 'ww'を' JSON.parse'でJavaScriptオブジェクトに変換し、 'q'プロパティを' object.q = arr; 'で置き換え、' JSON.stringify'でJSON文字列に戻します。 –

+0

私はあなたの解決策を理解していません。あなたは精緻化できますか? – Illep

答えて

-2

lodashライブラリを使用して、それを簡単に行うことができます。

+0

ロダシュを使用する特別な理由はありますか?これは 'www.q.push(... arr)'よりも複雑に見えません。 –

+0

www.q.push(arr)は重複したエントリを保持します。私は重複したエントリを削除するためにlodash union関数を使用しました。しかし、重複したエントリを保持したい場合は、配列プッシュメソッドも使用できます。 –

0

ES2015の一部であるテンプレートリテラルを使用することをおすすめします。配列全体が渡され、JSON文字列が必要だと仮定します。希望の出力形式に変更してください。

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)