しかし:
どのように私は値が存在する場合、新しいオブジェクトを追加することができます
const data = [
{ id: '30', mom: 'A', code: '0141', 'child':' Not used', 'status' :' X' },
{ id: '31', mom: 'B', code: '0141', 'child':' add Child', 'status' :' Y' }
{ id: '32', mom: 'B', code: '0141', 'child':' add child 2', 'status' :' Y' }
]
ステータス= XIは、新しい配列をプッシュしていない場合、私は、ステータス= X that've配列にして新しいオブジェクトキーコールの子を追加したい場合は、最初のI地図データと
data.map((element, i) => {
if (element.status == 'X') {
arr.push({
id: element.id,
mom: element.mom,
code: element.code
});
} else {
// I want to add element child into arr that has status = X
arr.push({ child: element.child });
}
})
私はこのような出力をしたいです
const arr = [
{
id: '30', mom: 'A', code: '0141',
child: [
'name':'add child',
'name':'add child2'
]
},
]
Fagner販売:
残念ながら、あなたのコードとあなたの質問は少し間違っていると理解するのは難しいです。スペースで書き込まれた値は、ステータス:キーの配列。だから... ...申し訳ありませんが、それを正しく理解している場合。
これは私が理解するものです
ステータスを持つすべての要素を持つ新しい配列を作成
X
し、ステータスを持つ要素のすべての子を入れY
キーでその配列にchild
。const data = [ { id: '30', mom: 'A', code: '0141', child: ' Not used', status: 'X' }, { id: '31', mom: 'B', code: '0141', child: ' add Child', status: 'Y' }, { id: '32', mom: 'B', code: '0141', child: ' add child 2', status: 'Y' } ]; let objectX = data.filter(val => val.status == "X"); objectX["child"] = data.filter(val => val.status == "Y").map(c => c.child); /* [ { id: '30', mom: 'A', code: '0141', child: ' Not used', status: 'X' }, child: [ ' add Child', ' add child 2' ] ] */ console.log(objectX);