некоторый лучший способ найти и изменить объект из массива, используя его атрибут - PullRequest
0 голосов
/ 26 апреля 2018

Предположим, у меня есть массив (Accounts[]) объектов, класс которых определяется как:

export const AccountSchema = {
    name: ACCOUNT_SCHEMA,
    primaryKey: 'id',
    properties: {
        id: 'int',    // primary key
        name: { type: 'string', indexed: true },
        type: 'string',
        balance: 'int',
        note:'string',
        creationDate: 'date',
    }
};

Теперь, например, я знаю имя учетной записи Salary AC и хочу изменить balance этой учетной записи.

Например, я хочу что-то вроде приведенного ниже кода в JavaScript (лучше или лучше).

В приведенном ниже коде с использованием == означает equality & : означает assignment

for(var i=0; i<Accounts.length; i++) {
   if (Accounts[i].name == 'Salary AC') {
      Accounts[i].balance: 500;
   }
}  

Заранее спасибо

1 Ответ

0 голосов
/ 26 апреля 2018

Вы можете использовать array#find ( документы )

Accounts.find(item => item.name === 'Salary AC').balance = 500

Имейте в виду, что find всегда будет возвращать первый элемент, который удовлетворяет условию, так что это не будет вариант, если у вас есть несколько учетных записей с одинаковым именем.В этом случае используйте array#filter и переберите возвращаемый массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...