sky*_*dev 5 javascript arrays for-loop ionic-framework angular
我正在尝试更新数组中的一个值。基本上我想更新数组中一个对象的状态值。这是我的数组
[
{
"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
}
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的尝试,但它更新了数组中的所有内容。参数 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 );
}
Run Code Online (Sandbox Code Playgroud)
所以澄清这是我想要实现的目标。假设用户执行项目 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
}
}
]
Run Code Online (Sandbox Code Playgroud)
如果你想更新statusfor projectname=== parameter1,你可以
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);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6272 次 |
| 最近记录: |