マップやチェック条件の後に配列に新しいオブジェクトを追加する方法

しかし:

どのように私は値が存在する場合、新しいオブジェクトを追加することができます

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);
    

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=18342&siteId=1