Javascript 如何在某些条件下更改对象属性的值
我有一件像这样的东西Javascript 如何在某些条件下更改对象属性的值,javascript,object,Javascript,Object,我有一件像这样的东西 Obj : { USA : true NZ : false, Canada : true, Japan : false, China : true Ind : false, } 在我的功能中,我得到了countery.name=IND,因此在这种情况下,我如何更改各自国家的国旗 我在这里试的是 var countryName = countery.name // Getting some value here. Object
Obj : {
USA : true
NZ : false,
Canada : true,
Japan : false,
China : true
Ind : false,
}
在我的功能中,我得到了countery.name=IND
,因此在这种情况下,我如何更改各自国家的国旗
我在这里试的是
var countryName = countery.name // Getting some value here.
Object.keys(obj).map(function(i) {
/*if(countryName == obj.countryName){ // something missing here
obj.countryName.value
}*/
});
通过
object.keys()
获取对象的属性,然后使用some()
迭代属性toLowerCase()
函数来比较属性和国家名称。在if
语句中,如果找到键,则使用returntrue
中断循环
var obj={
美国:没错,
新西兰:错,
加拿大:是的,
日本:错,,
中国:对,,
Ind:错
};
var国家={
姓名:'IND'
};
key(obj).some(key=>{
if(key.toLowerCase()==country.name.toLowerCase()){
obj[key]=!obj[key];
返回true;
}
});
控制台日志(obj)
通过object.keys()
获取对象的属性,然后使用some()
迭代属性toLowerCase()
函数比较属性和国家名称。在if
语句中,如果找到键,则使用returntrue
中断循环
var obj={
美国:没错,
新西兰:错,
加拿大:是的,
日本:错,,
中国:对,,
Ind:错
};
var国家={
姓名:'IND'
};
key(obj).some(key=>{
if(key.toLowerCase()==country.name.toLowerCase()){
obj[key]=!obj[key];
返回true;
}
});
控制台日志(obj)代码>
更改为真或假。将站点设置为当前值
使用Object.keys
函数的解决方案:
var Obj={美国:正确,新西兰:错误,加拿大:正确,日本:错误,中国:正确,印度:错误},
键=对象。键(Obj),
len=键。长度,
countryName='IND';
而(len--){
如果(键[len].toLowerCase()==countryName.toLowerCase()){
Obj[keys[len]=!Obj[keys[len]];
break;//避免重复迭代
}
}
控制台日志(Obj)代码>
更改为真或假。将站点设置为当前值
使用Object.keys
函数的解决方案:
var Obj={美国:正确,新西兰:错误,加拿大:正确,日本:错误,中国:正确,印度:错误},
键=对象。键(Obj),
len=键。长度,
countryName='IND';
而(len--){
如果(键[len].toLowerCase()==countryName.toLowerCase()){
Obj[keys[len]=!Obj[keys[len]];
break;//避免重复迭代
}
}
控制台日志(Obj)代码>如果找到,可以使用并退出循环
var obj={美国:正确,新西兰:错误,加拿大:正确,日本:错误,中国:正确,印度:错误},
countryName='IND';
对象。键(obj)。一些(函数(k){
if(k.toLowerCase()==countryName.toLowerCase()){
obj[k]=!obj[k];
返回true;
}
});
控制台日志(obj)代码>如果找到,可以使用并退出循环
var obj={美国:正确,新西兰:错误,加拿大:正确,日本:错误,中国:正确,印度:错误},
countryName='IND';
对象。键(obj)。一些(函数(k){
if(k.toLowerCase()==countryName.toLowerCase()){
obj[k]=!obj[k];
返回true;
}
});
控制台日志(obj)代码>您可以更改对象的属性,如obj[countryName]=!obj[countryName]。条件通过时的值
obj = {USA:true, NZ: false, Canada:true,Japan:false,China:true,Ind:false};
var countryName = 'Ind';
console.log("Before changing the flag:");
console.log(obj);
Object.keys(obj).map(function(i){
if (countryName == i)
obj[countryName] = !obj[countryName].value;
});
console.log("After changing the flag:");
console.log(obj);
您可以更改对象的属性,如obj[countryName]=!obj[countryName]。条件通过时的值
obj = {USA:true, NZ: false, Canada:true,Japan:false,China:true,Ind:false};
var countryName = 'Ind';
console.log("Before changing the flag:");
console.log(obj);
Object.keys(obj).map(function(i){
if (countryName == i)
obj[countryName] = !obj[countryName].value;
});
console.log("After changing the flag:");
console.log(obj);
预期产量是多少?您的问题不清楚如何更改标志-更改为什么?@brk如果(countryName:IND)
则在对象值中将更改为true@RomanPerekhrest更改为真或假。Opsite到当前值为什么不使用与请求国家/地区相同的密钥大小写?否则,带键的结构就没有意义了。预期的输出是什么?您的问题不清楚如何更改标志-更改为什么?@brk如果(countryName:IND)
则在对象值中将更改为true@RomanPerekhrest更改为真或假。Opsite到当前值为什么不使用与请求国家/地区相同的密钥大小写?否则,带有键的结构就没有意义了。