JavaScript преобразовать объект в другой объект установить значение по умолчанию - PullRequest
0 голосов
/ 04 августа 2020

Я разрушаю значение объекта из массива. Если массив пуст, происходит ошибка. Как сделать значение по умолчанию, если массив пуст?

Ошибка возникает, если массив, который я деструктурирую, пуст:

«TypeError», «message»: «Невозможно разрушить свойство payments of 'undefined' или 'null'. "

Код деструктуризации (await (...).toArray() возвращает массив [ { payments: @integer } ]):

    ({
        [0]: { payments: users.finances.payments = 0 },
    } = await (
        await payments_collection.aggregate([
            {
                $group: {
                    _id: null,
                    payments: { $sum: '$coins' },
                },
            },
        ])
    ).toArray());

1 Ответ

0 голосов
/ 04 августа 2020

@ adiga, спасибо за ответ.

Я заменил { [0]: { payments: users.finances.payments = 0 } } на [{ payments: users.finances.payments = 0 } = {}]

Новый рабочий код:

    [{ payments: users.finances.payments = 0 } = {}] = await (
        await payments_collection.aggregate([
            {
                $group: {
                    _id: null,
                    payments: { $sum: '$coins' },
                },
            },
        ])
    ).toArray();
...