Есть похожие вопросы, но я не могу найти что-то, чтобы точно решить этот вопрос.
У меня есть массив такой формы:
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 был первоначально создан для улучшения интерактивности веб-страниц.
Просто:
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
не будет жестко запрограммировано в производстве и является переменной.