Как написать условие if многомерного массива?

имеется массив

[
    [
        {
            "id_user": "21",
            "value_sum": "45634"
        },
        {
            "id_user": "22",
            "value_sum": "4534"
        }
    ]
]

Необходимо найти в массиве, например, id_user = 22, если такой имеется, то ничего не делать, а если не имеется, то выполнить

add_user_awards.push({'id_user':id_row, 'value_sum':value_sum});

пробовал так:

let id_row = 22;
let value_sum = 4444;
if(add_user_awards[0]['id_user'].indexOf(id_row) > -1) {
    let test = true;
    console.log(test);
} else {
    add_user_awards.push({'id_user':id_row, 'value_sum':value_sum});
}

Ничего не вышло


Ответы (1 шт):

Автор решения: Nick

Вам нужно использовать функцию find для поиска объекта в массиве по значению его поля:

let id_row = 22;
let value_sum = 4444;
if(add_user_awards[0].find(function (user) { return user.id_user == id_row }) != null) {
    let test = true;
    console.log(test);
} else {
    add_user_awards[0].push({'id_user':id_row, 'value_sum':value_sum});
}
→ Ссылка