使用其属性从数组中查找和更改对象的更好方法

时间:2018-04-26 07:54:47

标签: javascript for-loop react-native

假设我有一个数组(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 :(得分:1)

您可以使用array#finddocs

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

请注意,find将始终返回满足条件的第一个元素,因此如果您有多个具有相同名称的帐户,则它不会是一个选项。在这种情况下,使用array#filter并循环返回的数组。