Javascript 如何更改数组中对象的第一个布尔值?
我有一个来自API的JSON,API的响应是声明任务是否已经完成 JSON示例:Javascript 如何更改数组中对象的第一个布尔值?,javascript,react-native,Javascript,React Native,我有一个来自API的JSON,API的响应是声明任务是否已经完成 JSON示例: [ { Name: 'Pre Operation', Checked: false }, { Name: 'Operation', Checked: false }, { Name: 'Post Operation', Checked: false } ] 如何将JSON更新为: [ { Name: 'Pre Operation', Checked: true}, { Name: 'Operation
[ { Name: 'Pre Operation', Checked: false },
{ Name: 'Operation', Checked: false },
{ Name: 'Post Operation', Checked: false } ]
如何将JSON更新为:
[ { Name: 'Pre Operation', Checked: true},
{ Name: 'Operation', Checked: false },
{ Name: 'Post Operation', Checked: false } ]
我已尝试使用此代码:
var output = jsonResult.map((item)=>{
if(item.Checked == true){
item.Checked === false
}
return item
})
但是JSON没有改变,我担心item.Checked==false
会影响所有具有true
值的item.Checked
如果API有这样的回复:
[ { Name: 'Pre Operation', Checked: true},
{ Name: 'Operation', Checked: false },
{ Name: 'Post Operation', Checked: false } ]
[ { Name: 'Pre Operation', Checked: true},
{ Name: 'Operation', Checked: true},
{ Name: 'Post Operation', Checked: false } ]
我需要将JSON更新为如下所示:
[ { Name: 'Pre Operation', Checked: true},
{ Name: 'Operation', Checked: false },
{ Name: 'Post Operation', Checked: false } ]
[ { Name: 'Pre Operation', Checked: true},
{ Name: 'Operation', Checked: true},
{ Name: 'Post Operation', Checked: false } ]
任何人都可以帮我制定目标吗?使用
var arr=[{Name:'Pre-Operation',Checked:false},{Name:'Operation',Checked:false},{Name:'Post-Operation',Checked:false}];
函数updateStatus(){
var result=arr.find(({Checked})=>!Checked);
if(result)result.Checked=true;
}
更新状态();console.log(arr);//首先是更新
更新状态();console.log(arr);//二是更新
更新状态();console.log(arr);//三是更新
更新状态();console.log(arr);//无更新
使用
var arr=[{Name:'Pre-Operation',Checked:false},{Name:'Operation',Checked:false},{Name:'Post-Operation',Checked:false}];
函数updateStatus(){
var result=arr.find(({Checked})=>!Checked);
if(result)result.Checked=true;
}
更新状态();console.log(arr);//首先是更新
更新状态();console.log(arr);//二是更新
更新状态();console.log(arr);//三是更新
更新状态();console.log(arr);//没有更新
不确定我是否误解了这个问题,但你肯定可以
jsonResult[0].Checked = true;
编辑。。如果你想变得无情
jsonResult.some((item) => { if (item.Name = 'Pre Operation') { item.Checked = true; return true; })
array.prototype.some是在完成所需操作后存在循环的一种好方法-一旦返回“true”,它将停止循环。不确定我是否误解了这个问题,但您肯定可以
jsonResult[0].Checked = true;
编辑。。如果你想变得无情
jsonResult.some((item) => { if (item.Name = 'Pre Operation') { item.Checked = true; return true; })
array.prototype.some是一种在完成所需操作后存在循环的好方法-一旦返回“true”,它将停止循环。这个对象数组(不是JSON)是您的
this.state
的一部分吗?@T.J.Crowder yep,实际上我从API解析了JSON,我在console.log
时得到了这些数组,但它是this.state
的一部分吗?请阅读这个对象数组(它不是JSON)是this.state
的一部分吗?@T.J.Crowder是的,实际上我已经从API解析了JSON,我在console.log
时得到了这些数组,但它是你的这个.state
的一部分吗?请阅读