2016-11-23 8 views
2

一つは、私はこのような間違った形式で必要ないくつかのデータを返している:JS/ES6:配列への変換オブジェクトの私のノードのJSライブラリの

{"a":["1","2"],"b":["3","4"],"c":["5","6"]} 

(値は重要ではありませんのでご注意) けどこの配列をある方法でループする必要があります。私は特定の値(この場合は '2'、私は '4'が必要です)と私のプログラムの他の部分はすべて配列を使っていますこのように:

[{"a":"1", "b":"3", "c":"5"}, {"a":"2", "b":"4", "c":"6"}] 

これは私の好ましいアプローチです。

aのデータ量は常にbとcと同じですが、それ自体は可変です。

私はfor-loopsを使いこなす前に、ES6/JSでこれを達成する "最良の"方法は何でしょうか?

+0

「*の考えることができる最も簡単な方法ですこの質問があなたの進歩にあなたを押しつけているなら、私はあなたにこれを読むことを強く勧めます:http:///www.joelonsoftware.com/articles/fog0000000018.html –

+2

ここに示した配列を使用した例には、特に「* Uncaught SyntaxError:予期しないトークン*」というエラーがあります。それを配列にするつもりでしたか?私はあなたの質問の重要な部分だと感じています。 –

+1

実際にfor-loopsはかなり良い考えです。 – Bergi

答えて

2

あなたは

[{"a":"1","b":"3","c":"5"},{"a":"2","b":"4","c":"6"}] 

のような配列に

{"a":["1","2"],"b":["3","4"],"c":["5","6"]} 

のようにオブジェクトを変換するために探している場合はこのような何かは私が

function formatData (data) { 
    return Object.keys(data).reduce((arr, key) => { 
    data[key].forEach((value, i) => { 
    const iObj = arr[i] || (arr[i] = {}); 
    iObj[key] = value; 
    }); 
    return arr; 
    }, []); 
} 
+0

あなたの質問には '{[" a ":" 1 "、" b ":" 3 "、" c ":" 5 "]、[" a ":" 2 "、" b "私はあなたが '' {{"a": "1"、 "b": "3"、 "c": "5"}、{"最初のものは有効なjsではないので、 ":" "2"、 "b": "4"、 "c": "6"}] ' –

+0

はい、あなたは正しいです。私はこれを今更新するつもりです。迅速な対応にも大きな感謝、これは完全に動作します。 – ThexBasic

+0

'for 'と' for(let i = 0; i Bergi

関連する問題