如何通过更改对象之一来更新数组?

这将是我的数组代码

this.datas = [
    {
        index: 1,
        name: 'Tony',
        status: 'Absent',
        reason: null
    },
    {
        index: 2,
        name: 'Chris',
        status: 'Present',
        reason: null
    },
];


因此,现在我想编写一个函数来更新类似{reason:any reason}的原因,它从索引1,索引2保持不变。

到目前为止,我已经尝试过这些

setReason = reason => {

let data = [...this.state.nameList];
let ind = data.findIndex(el => el.index === 'number');
data[ind] = { ...data[ind], reason: reason };
this.setState({
  nameList: data
});
};

最佳答案

更新数组的单个对象数据
您首先需要知道要更新的数组中对象的索引
例如想更新数组的第一个对象

this.datas[0].reason = 'My custom reason';


现在,您要通过在数组中查找对象来更新数组的对象,必须在其中添加循环
例如:更新名称为Chris的原因

for(i=0; i<this.datas.length; i++){
    if(this.datas[i].name=='Chris'){
        this.datas[i].reason = 'My custom reason';
     break;
    }
}

关于javascript - 如何在react native中更新数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56017034/

10-11 02:37