Если я что-то не упустил, это возвращает самого верхнего родителя, который содержит искомый объект, а не сам объект.

сиве объектов мне нужно найтиvalue -- гдеkey являетсяactivity : Однакоactivity key может быть глубоко вложен в массив следующим образом:

const activityItems = [
    {
        name: 'Sunday',
        items: [
            {
                name: 'Gym',
                activity: 'weights',
            },
        ],
    },
    {
        name: 'Monday',
        items: [
            {
                name: 'Track',
                activity: 'race',
            },
            {
                name: 'Work',
                activity: 'meeting',
            },
            {
                name: 'Swim',
                items: [
                    {
                        name: 'Beach',
                        activity: 'scuba diving',
                    },
                    {
                        name: 'Pool',
                        activity: 'back stroke',
                    },
                ],
            },
        ],    
    },
    {} ...
    {} ...
];

Поэтому я написал рекурсивный алгоритм, чтобы узнать, есть ли определенная активность в массиве:

let match = false;
const findMatchRecursion = (activity, activityItems) => {
    for (let i = 0; i < activityItems.length; i += 1) {
        if (activityItems[i].activity === activity) {
            match = true;
            break;
        }

        if (activityItems[i].items) {
            findMatchRecursion(activity, activityItems[i].items);
        }
    }

    return match;
};

ЕстьES6 способ определить, существует ли активность в массиве, как это?

Я попробовал что-то вроде этого:

const findMatch(activity, activityItems) {
    let obj = activityItems.find(o => o.items.activity === activity);
    return obj;
}

Но это не будет работать с глубоко вложенными действиями.

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос