Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript Es6中使用三元运算符编写条件?_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

如何在javascript Es6中使用三元运算符编写条件?

如何在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

我在react-mapStatetoprops函数中写入一个三元条件,同时返回对象,我想写入一些条件以完全填充返回数据

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我已经编辑了代码,是的,它来自州政府