首页 > 解决方案 > 使用属性从数组中查找和更改对象的更好方法

问题描述

假设我有一个对象数组(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;
   }
}  

提前致谢

标签: javascriptfor-loopreact-native

解决方案


您可以使用array#find文档

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

请记住,这find将始终返回满足条件的第一个元素,因此如果您有多个同名帐户,则不能选择。在这种情况下,使用array#filter并循环返回的数组。


推荐阅读