Javascript 使用push方法向对象添加条件
我想知道是否有办法在数组push方法中添加条件?我只希望在对象存在时将属性“provinceCodes”添加到该对象中。而不是在下面的if/else中这样做……我想知道是否有更干净的方法Javascript 使用push方法向对象添加条件,javascript,object,ecmascript-6,push,for-in-loop,Javascript,Object,Ecmascript 6,Push,For In Loop,我想知道是否有办法在数组push方法中添加条件?我只希望在对象存在时将属性“provinceCodes”添加到该对象中。而不是在下面的if/else中这样做……我想知道是否有更干净的方法 const generateCountriesArray = (countriesObject) => { const countries = []; for (var key in countriesObject) { var country = countriesObject[key];
const generateCountriesArray = (countriesObject) => {
const countries = [];
for (var key in countriesObject) {
var country = countriesObject[key];
if (typeof(country.provinceCodes) !== 'undefined')
{
countries.push({
value: key,
name: country.name,
provinceCodes: country.provinceCodes
});
}
else
{
countries.push({
value: key,
name: country.name
});
}
}
return countries;
}) 为什么不:
countries.push({
value: key,
name: country.name,
provinceCodes: country.provinceCodes
});
如果country.provinceCodes不存在,则只需将新对象中的该键设置为“未定义”,这与在大多数情况下未设置该键一样好。您可以与一起使用。如果表达式的结果provinceCodes!==未定义的
为真
,短路将对包含provinceCodes
的对象进行评估,排列将向结果对象添加属性provinceCodes
。如果不是,表达式将计算为false
。false
将被丢弃
const generateCountriesArray=(countriesObject)=>{
常量国家=[];
for(countriesObject中的变量k){
var{key,name,provinceCodes}=countriesObject[k];
国家。推({
值:键,
名称
…provinceCodes!==未定义&&{provinceCodes}
});
}
返回国;
};
常量countriesObject={
a:{键:1,名称:1,省代码:1},
b:{键:2,名称:2},
};
log(generateCountriesArray(countriesObject))代码>无论如何,您需要一个条件语句。这可能会减少代码长度:
const generateCountriesArray=(countriesObject)=>{
常量国家=[];
for(countriesObject中的var键){
var country=countriesObject[key];
var newObject={
值:键,
姓名:country.name
};
如果(country.provinceCodes!==“未定义”){
newObject.provinceCodes=国家/地区.provinceCodes;
}
国家。推送(新对象);
}
返回国;
}
要检查某些属性是否存在,可以使用返回true或false的运算符,而不是typeof(country.provinceCodes)!='未定义的“
var country={“provinceCodes”:0}
console.log(“国家/地区的provinceCodes”)
console.log(“国家/地区的provinceCodes2”)
谢谢。回答得很好!:)