Используя .flatMap()
, вы можете перебирать каждый объект, а затем .map()
массив обзоров каждого объекта в массив, содержащий свойства текста. .flatMap()
позволяет объединить все результаты массива внутренней карты в один большой результирующий массив.
const stores = [ { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 1" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 2" } ] }, { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 3" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 4" } ] }, { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 5" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 6" } ] } ];
const res = stores.flatMap((o) => o.reviews.map(({text}) => text));
console.log(res);
Если вы не можете поддерживать .flatMap()
, вы всегда можете сопоставить массив массивов, используя .map()
, а затем сгладить его после использования .concat()
с синтаксисом (...
):
const stores = [ { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 1" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 2" } ] }, { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 3" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 4" } ] }, { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 5" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 6" } ] } ];
const res = [].concat(...stores.map((o) => o.reviews.map(({text}) => text)));
console.log(res);