Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 如何将三元运算符应用于此代码 函数域类型(域){ 常量域类型=[]; for(设i=0;i({ 组织:'组织', com:"商业",, 网络:"网络",, 信息:“信息” }[domain.split('.').pop()]| |“未知”)) }_Javascript_Conditional Operator - Fatal编程技术网

Javascript 如何将三元运算符应用于此代码 函数域类型(域){ 常量域类型=[]; for(设i=0;i({ 组织:'组织', com:"商业",, 网络:"网络",, 信息:“信息” }[domain.split('.').pop()]| |“未知”)) }

Javascript 如何将三元运算符应用于此代码 函数域类型(域){ 常量域类型=[]; for(设i=0;i({ 组织:'组织', com:"商业",, 网络:"网络",, 信息:“信息” }[domain.split('.').pop()]| |“未知”)) },javascript,conditional-operator,Javascript,Conditional Operator,我遇到的问题是,当我尝试应用三元运算符时,如果条件起作用,但我不能正确应用三元运算符,请有人告诉我怎么做。提前感谢。如果您删除ternaries链前面的返回,并在末尾添加一个回退,那么您的代码就可以工作了,比如:“未知”(同时确保返回域类型位于循环体之外)。但是正如评论中提到的那样,这会使代码的可读性和可维护性大大降低 相反,您可以使用如下开关: 开关(lastdomain){ 案例“组织”: domainType.push('组织') 打破 案例“com”: domainType.push('

我遇到的问题是,当我尝试应用三元运算符时,如果条件起作用,但我不能正确应用三元运算符,请有人告诉我怎么做。提前感谢。

如果您删除ternaries链前面的
返回
,并在末尾添加一个回退,那么您的代码就可以工作了,比如
:“未知”
(同时确保
返回域类型
位于循环体之外)。但是正如评论中提到的那样,这会使代码的可读性和可维护性大大降低

相反,您可以使用如下开关:

开关(lastdomain){
案例“组织”:
domainType.push('组织')
打破
案例“com”:
domainType.push('commercial')
打破
“净”案例:
domainType.push('网络')
打破
案例“信息”:
domainType.push('信息')
打破
}
…或者,对于最简洁、重复性最低的代码,使用查找表:

const typeDescription={
组织:'组织',
com:"商业",,
网络:"网络",,
信息:“信息”
}[lastdomain]
if(类型描述)domainType.push(类型描述)
这是你的代码的直译,有点像。但是,更进一步说,您似乎期望一个数组作为输出,具有与输入相同数量的元素(否则,一旦有一个不在列表中的TLD,例如
.de
,您就不知道哪个是哪个)。因此您需要一个默认值,例如
unknown
。在这种情况下,
if
将变得不必要:

domainType.push({
组织:'组织',
com:"商业",,
网络:"网络",,
信息:“信息”
}[lastdomain]| |“未知”)
但是,我们可以将您的整个功能简化如下:

函数域类型(域){
返回domains.map(domain=>({
组织:'组织',
com:"商业",,
网络:"网络",,
信息:“信息”
}[domain.split('.').pop()]| |“未知”))
}

如果您删除ternaries链前面的
返回
,并在末尾添加一个回退,比如
:“unknown”
(同时确保
返回域类型
位于循环体之外),那么您的代码就可以工作了。但是正如评论中提到的那样,这会使代码的可读性和可维护性大大降低

相反,您可以使用如下开关:

开关(lastdomain){
案例“组织”:
domainType.push('组织')
打破
案例“com”:
domainType.push('commercial')
打破
“净”案例:
domainType.push('网络')
打破
案例“信息”:
domainType.push('信息')
打破
}
…或者,对于最简洁、重复性最低的代码,使用查找表:

const typeDescription={
组织:'组织',
com:"商业",,
网络:"网络",,
信息:“信息”
}[lastdomain]
if(类型描述)domainType.push(类型描述)
这是你的代码的直译,有点像。但是,更进一步说,您似乎期望一个数组作为输出,具有与输入相同数量的元素(否则,一旦有一个不在列表中的TLD,例如
.de
,您就不知道哪个是哪个)。因此您需要一个默认值,例如
unknown
。在这种情况下,
if
将变得不必要:

domainType.push({
组织:'组织',
com:"商业",,
网络:"网络",,
信息:“信息”
}[lastdomain]| |“未知”)
但是,我们可以将您的整个功能简化如下:

函数域类型(域){
返回domains.map(domain=>({
组织:'组织',
com:"商业",,
网络:"网络",,
信息:“信息”
}[domain.split('.').pop()]| |“未知”))
}
函数域类型(数组){
let域型;
array.forEach(域=>{
交换机(域拆分(“.”[1]){
案例“组织”:
域类型='组织';
打破
案例“com”:
domainType=‘comminication’;
打破
“净”案例:
域类型='网络';
打破
案例“信息”:
域类型='信息';
打破
违约:
域类型='未知';
打破
}
返回域类型;
});
}
如果为每个域使用一个带大小写的开关(和一个默认值,基本上是一个最终值),并最终返回它,那么它就更干净了。如果为每个域使用一个带大小写的开关(和一个默认值,基本上是一个最终值),它就不会使用一堆其他的

function domainTypees(domains) { return domains.map((domain) => { const domainParts = domain.split("."); const domainExt = domainParts[domainParts.length - 1]; return domainExt === "org" ? "organization" : domainExt === "com" ? "commercial" : domainExt === "net" ? "network" : domainExt === "info" ? "information" : "unknown"; }); } domainTypees(["en.wiki.org", "codefights.com", "happy.net", "code.info", "somewhere.eu"]) // results in: ["organization", "commercial", "network", "information", "unknown"]
function domainTypees(domains) {
  return domains.flatMap((domain) => {
    const domainParts = domain.split(".");
    const domainExt = domainParts[domainParts.length - 1];
    return domainExt === "org"
      ? ["organization"]
      : domainExt === "com"
      ? ["commercial"]
      : domainExt === "net"
      ? ["network"]
      : domainExt === "info"
      ? ["information"]
      : [];
  }, []);
}

domainTypees(["en.wiki.org", "codefights.com", "happy.net", "code.info", "somewhere.eu"]);
// results in: ["organization", "commercial", "network", "information"]