我正在尝试更新数组中的一个值。基本上我想更新数组中一个对象的状态值。这是我的数组
[
{
"projects": {
"projectname": "one",
"dateadded": "16 April 2018, 7:23AM",
"status": 1
}
},
{
"projects": {
"projectname": "two",
"dateadded": "16 April 2018, 7:23AM",
"status": 1
}
},
{
"projects": {
"projectname": "three",
"dateadded": "16 April 2018, 7:32AM",
"status": 1
}
}
]
这是我的尝试,但它更新了数组中的所有内容。 参数1是项目名称——看我是不是在正确的项目上
archive(){
var parameter1 = this.navParams.get('param1');
this.storage.get('projectsStore').then(data => {
for (var i = 0; i < data.length; i++) {
if (data[i].projects.projectname == parameter1) {
this.project = [{ "projectname":data[i].projects.projectname, "dateadded":data[i].projects.dateadded, "location":data[i].projects.location, "status":0 }];
}
}
});
this.storage.set( 'projectsStore', this.project );
}
所以澄清这是我想要实现的。假设用户为项目 3 执行存档功能,那么数组需要看起来像这样(项目 3 的状态已更新,但项目 1 和 2 的状态未更新)
[
{
"projects": {
"projectname": "one",
"dateadded": "16 April 2018, 7:23AM",
"status": 1
}
},
{
"projects": {
"projectname": "two",
"dateadded": "16 April 2018, 7:23AM",
"status": 1
}
},
{
"projects": {
"projectname": "three",
"dateadded": "16 April 2018, 7:32AM",
"status": 0
}
}
]
最佳答案
如果你想更新projectname
=== parameter1
的status
,你可以
var parameter1 = 'three';
var data = [{
"projects": {
"projectname": "one",
"dateadded": "16 April 2018, 7:23AM",
"status": 1
}
},
{
"projects": {
"projectname": "two",
"dateadded": "16 April 2018, 7:23AM",
"status": 1
}
},
{
"projects": {
"projectname": "three",
"dateadded": "16 April 2018, 7:32AM",
"status": 1
}
}
];
data.forEach(v => {
//Test if projectname == parameter1. If it is update status
if (v.projects.projectname === parameter1) v.projects.status = 0;
});
console.log(data);
关于javascript - 更新数组中一个对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49850253/