Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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 当可能有两个以上的值时,初始化常量变量的更简洁的方法是什么_Javascript_Typescript - Fatal编程技术网

Javascript 当可能有两个以上的值时,初始化常量变量的更简洁的方法是什么

Javascript 当可能有两个以上的值时,初始化常量变量的更简洁的方法是什么,javascript,typescript,Javascript,Typescript,标题说明了一切。我正在寻找一种更优雅的方法来使用条件语句声明和分配常量变量,而不是这样: const someVar = (() => { switch (otherVar) { case someVal: return something case otherVal: return somethingElse default: return somethingDefault } })() 您可以将逻辑提取到一个方法中并使用

标题说明了一切。我正在寻找一种更优雅的方法来使用条件语句声明和分配常量变量,而不是这样:

const someVar = (() => {
    switch (otherVar) {
        case someVal: return something
        case otherVal: return somethingElse
        default: return somethingDefault
    }
})()

您可以将逻辑提取到一个方法中并使用一个对象,该对象看起来与初始代码类似:

const getValue = key => {
  return {
    foo: 'bar',
    bar: 'baz',
    baz: 'quux',
  }[key] || 'defaultValue'
}

const someVar = getValue(otherVar)
这可以进一步简化,尽管它是否更具可读性仍有争议

const getValue = key => ({
  foo: 'bar',
  bar: 'baz',
  baz: 'quux',
}[key] || 'defaultValue')

const someVar = getValue(otherValue)

如果需要,您仍然可以立即调用该函数,但通过将逻辑提取到一个方法中,它可以在其他地方使用并简化测试。

使用三元运算符的解决方案

const someVar=((otherVar)=>{
return(otherVar==“someVal”)?“something”:(otherVar==“otherVal”)?“somethingElse”:“somethingDefault”;
})(“某某”)
console.log(someVar)