Найти индекс ошибок массива - PullRequest
0 голосов
/ 10 октября 2019

У меня есть массив компонентов (this.needle), где у НЕКОТОРЫХ, но не у всех, есть существующий RMA, который является объектом RMA внутри объекта компонента. Я пытаюсь закодировать удаление RMA. Метод получает запись, так что я знаю, что obj ИМЕЕТ объект rma.

Массив игл - это массив таких объектов:

[
    {
        cmp_auto_key: 3047,
        company_code: "FCAS2",
        condition_code: "AR",
        description: "PUMP, ELECT MOTOR DRIVEN",
        invc_number: "87259",
        msn: '11105",
        rma: {
            contact: "jsmith@co.com",
            disposition: 1,
            id: 714,
            status_id: 3,
            submit_deadline: "2019-11-08 00:00:00"
        }
    },
    {
        cmp_auto_key: 3047,
        company_code: "FCAS2",
        condition_code: "AR",
        description: "PUMP, ELECT MOTOR DRIVEN",
        invc_number: "87259",
        msn: '11111"
    }

]

А вот код удаления:

if(confirm('Are you sure you want to delete this RMA?')) {
    let id = obj.rma.id;
    let idx = _.findIndex(this.needle, {id: obj.rma.id}); //produces error
    console.log('KILLER', this.needle[idx]);
    this.needle[idx].rma = null;
    console.log('KILLED', this.needle[idx]);
} // end if

Этот код умирает в указанной строке, поскольку не все элементы в массиве имеют объект RMA, поэтому он возвращает

"Невозможно установить свойство 'rma' из неопределенного"

Есть ли способ заставить findIndex игнорировать запись все вместе, если нет объекта rma, не выдав исключение?

Любое руководство приветствуется.

...