2017-06-29 13 views
0

は、私はこれを作るためにそれを必要とするオブジェクト内の文字列を分割し、配列にプッシュする方法はありますか? Javascriptを

Array = [{key_id: 7, key1: "String1", key1: "String2" ...}] 

または

Array = [{key_id: 7, key1: "String1", "String2" ...}] 

を受信したいオブジェクトと異なる文字列の各時間が異なる数量たび

Object { 
    key_id: 7, 
    key1: "String1, String2", 
    key2: "String1, String2, String3", 
    key3: "String1, String2", 
    key4: "String1, String2"; 
    … 
} 

を受け取りますそれらから分離するために分離された文字列 私はそれらを[キー、値]のペアの配列に変換するJSX /バベルES6

+0

あなたはすでに何をしようとしたのですか? – Gerfried

+0

1つのオブジェクトを配列内に、または複数のオブジェクトにしたいですか? –

+0

複数の同じキー名を1つのオブジェクトに含めることはできません。 –

答えて

2

使用Object#entriesとReactJsにそれを作る、とArray#mapています:

const data = { 
 
    key_id: 7, 
 
    key1: "String1, String2", 
 
    key2: "String1, String2, String3", 
 
    key3: "String1, String2", 
 
    key4: "String1, String2" 
 
}; 
 

 
const result = Object.entries(data).map(([key, value]) => ({ 
 
    [key]: typeof value === 'string' ? value.split(', ') : value 
 
})); 
 

 
// an array with multiple objects 
 
console.log(result); 
 

 
// A single object: 
 
console.log(Object.assign({}, ...result));

。なお、 Object#entriesはES6の一部ではなく、IEとEdgeではサポートされていません。

+1

ありがとうございます。それは私のために働いた! –

0

EDIT:各プロパティを配列要素に変更するようにコードを更新しました。

let data = { 
 
    key_id: 7, 
 
    key1: "String1, String2", 
 
    key2: "String1, String2, String3", 
 
    key3: "String1, String2", 
 
    key4: "String1, String2" 
 
}; 
 

 
Object.keys(data).forEach(function(key) { 
 
    data[key] = typeof data[key] === 'string' ? data[key].split(', ') : data[key]; 
 
}); 
 

 
console.log(data);

関連する問題