Как отфильтровать массив объектов по ключу

Есть похожие вопросы, но я не могу найти что-то, чтобы точно решить этот вопрос.

У меня есть массив такой формы:

AllReviews: [

{"0001": [
         {"Review": "In a Pickle", "Notes": "Approved"},
         {"Review": "A Cat Nap", "Notes": "Approved"},
         {"Review": "Flea market", "Notes": "Approved"}
       ]
},
{"0002": [
         {"Review": "Mouth-watering", "Notes": "Approved"},
         {"Review": "Easy As Pie", "Notes": "Approved"},
       ]
},
{"0003": [
         {"Review": "Loved it", "Notes": "Approved"},
         {"Review": "To sweet", "Notes": "Rejected"}
       ]
}

]

Я хочу отфильтровать этот массив, чтобы он возвращал только обзор 002. Я не могу понять, как это сделать. Моя попытка была слабой:

AllReviews.value.filter((Review) => {
   for (const [Key, Value] of Object.entries(Review)) {
    return Review[Key] === 0002 // Trying to say return the value (the array with reviews and notes) where the Key of the object matches what I want e.g. 0002
 }
})

Мой код, конечно, ерунда и работать не будет.

🤔 А знаете ли вы, что...
JavaScript был первоначально создан для улучшения интерактивности веб-страниц.


89
2

Ответы:

Решено

Просто:

const AllReviews =
    [ { '0001': 
        [ { Review: 'In a Pickle', Notes: 'Approved'} 
        , { Review: 'A Cat Nap',   Notes: 'Approved'} 
        , { Review: 'Flea market', Notes: 'Approved'} 
      ] } 
    , { '0002': 
        [ { Review: 'Mouth-watering', Notes: 'Approved'} 
        , { Review: 'Easy As Pie',   Notes: 'Approved'} 
      ] } 
    , { '0003': 
        [ { Review: 'Loved it', Notes: 'Approved'} 
        , { Review: 'To sweet', Notes: 'Rejected'} 
    ] } ];
    
const Result = AllReviews.filter( row => row.hasOwnProperty('0002') );

console.info( Result );
.as-console-wrapper{max-height:100% !important;top:0}
.as-console-row::after{display:none !important;}

Я сам это понял:

let AllReviews = [
{"0001": [
         {"Review": "In a Pickle", "Notes": "Approved"},
         {"Review": "A Cat Nap", "Notes": "Approved"},
         {"Review": "Flea market", "Notes": "Approved"}
       ]
},
{"0002": [
         {"Review": "Mouth-watering", "Notes": "Approved"},
         {"Review": "Easy As Pie", "Notes": "Approved"},
       ]
},
{"0003": [
         {"Review": "Loved it", "Notes": "Approved"},
         {"Review": "To sweet", "Notes": "Rejected"}
       ]
}
];

let Result;
AllReviews.forEach((Review) => {
  for (const [Key, Value] of Object.entries(Review)) {
    if (Number(Key) === 0002 && Value != null && Value.length) {
      Result = {
        [Key]: Review[Key]
      }
    }
  }
})

console.info(Result);

Очевидно, что 0002 не будет жестко запрограммировано в производстве и является переменной.