如何在javascript Es6中使用三元运算符编写条件?
我在react-mapStatetoprops函数中写入一个三元条件,同时返回对象,我想写入一些条件以完全填充返回数据如何在javascript Es6中使用三元运算符编写条件?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我在react-mapStatetoprops函数中写入一个三元条件,同时返回对象,我想写入一些条件以完全填充返回数据 const mapStateToProps = (state) => { const { module: { module1, module4: { submodule } } } = state; const newObj = { module1, module4Submodule: submodule }; return{ testmodule: newo
const mapStateToProps = (state) => {
const { module: { module1, module4: { submodule } } } = state;
const newObj = { module1, module4Submodule: submodule };
return{
testmodule: newobj
}
}
newobj返回
{
"module1": {
"foo": 1,
"bar": 2,
"anotherfoo": 5
},
"module4Submodule": {
"foo": 9,
"bar": 0,
"anotherfoo": 1
}
}
要在testmodule中写入的条件为
如果state.manage.module包含“module1”或“module4Submodule”(需要检查
长度,null,module1和module4Submodule的未定义值),然后返回
“newobj”else返回“somevalue”
这也是在return语句中写入条件或在这之前写入条件并只返回值的好方法吗 如果state.manage.module包含“module1”或“module4子模块”(需要 检查module1和module1的长度、null和未定义值 module4Submodule)然后返回“newobj”,否则返回“somevalue” 请看下面的代码 但我必须强调,在这种情况下,最好使用“经典”if/else语句,因为这是一个复杂的条件,很难被您或其他人“阅读”
const newObj={
“模块1”:{
“福”:1,
“酒吧”:2,
“其他人”:5
},
“模块4子模块”:{
“福”:9,
“酒吧”:0,
“其他人”:1
}
}
const returnResult=(Object.keys(newObj).includes('module1')&&Object.keys(newObj.module1)&&Object.keys(newObj.module1).length>0)|(Object.keys(newObj.module4).includes('module4子模块')&&Object.keys(newObj.module4子模块)&&Object.keys(newObj.module4子模块).length>0)?newObj:“someValue”
console.log(returnResult)
如果您不喜欢编写条件表达式,请使用if
语句。@Bergi只想尝试使用三元运算符,我可以使用if和else条件,尝试学习然后请使用if
/else
发布工作代码,以便我们知道要转换的代码。obj
来自哪里?它应该是状态
?正如@Bergi所说,用if/else
编写,然后用替换:代码>(但我相信可读性是关键,代码不一定是一行代码,这是为了丑化)(同样取决于场景)@Icepickle我已经编辑了代码,是的,它来自州政府