Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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_Ecmascript 6_Iteration_Value Iteration - Fatal编程技术网

在括号之间声明一个javascript对象,以仅选择与其索引对应的元素

在括号之间声明一个javascript对象,以仅选择与其索引对应的元素,javascript,ecmascript-6,iteration,value-iteration,Javascript,Ecmascript 6,Iteration,Value Iteration,我在一本书中发现了这个样本,这是我第一次看到这个符号。 很明显,它比切换短一千倍;但这是什么呢? 当我执行typeof(status)时,它返回undefined 我想了解它是什么,以便我可以在我的下一个代码中更经常地应用它 function statusformId(id) { const status = ({ 0: 'in the bed', 1: 'face to your computer', 2: 'a little bit silly', 3:

我在一本书中发现了这个样本,这是我第一次看到这个符号。 很明显,它比切换短一千倍;但这是什么呢? 当我执行
typeof(status)
时,它返回undefined

我想了解它是什么,以便我可以在我的下一个代码中更经常地应用它

function statusformId(id) {
  const status = ({
    0: 'in the bed',
    1: 'face to your computer',
    2: 'a little bit silly',
    3: 'nowhere'
  })[id];
  return status || 'Unknow status: ' + id;
}
console.log('statusformId(2) ...', statusformId(2)); // a little bit silly
console.log('statusformId() ...', statusformId());   // Unknow status: undefined

谢谢大家!

首先是一些修复

  • 在函数之前添加“函数”
以下是一个工作示例:

    function statusformId(id){
      const status = (
        {
          0: 'in the bed',
          1: 'face to your computer',
          2: 'a little bit silly',
          3: 'nowhere'
        }
      )[id];
      return status || 'Unknow status: '+id
    }
    console.log(statusformId(0));
    console.log(statusformId(1));
    console.log(statusformId(2));
    console.log(statusformId(3));
    console.log(statusformId(4));
哪个会回来

in the bed
face to your computer
a little bit silly
nowhere
Unknow status: 4
原因:

这表示一个具有某些索引的对象,其中0的值为“in the bed”

{
  0: 'in the bed',
  1: 'face to your computer',
  2: 'a little bit silly',
  3: 'nowhere'
}
将对象包装在子表达式中并添加索引将创建对象并返回传递的索引的值

      const status = (
        {
          0: 'in the bed',
          1: 'face to your computer',
          2: 'a little bit silly',
          3: 'nowhere'
        }
      )[id];
当使用对象未知的id时,返回undefined。 使用
| |
将返回
'Unknow status:'+id
当status有一个falsy值(如未定义、null、false等)时,否则返回实际值

  return status || 'Unknow status: '+id

首先是一些修复

  • 在函数之前添加“函数”
以下是一个工作示例:

    function statusformId(id){
      const status = (
        {
          0: 'in the bed',
          1: 'face to your computer',
          2: 'a little bit silly',
          3: 'nowhere'
        }
      )[id];
      return status || 'Unknow status: '+id
    }
    console.log(statusformId(0));
    console.log(statusformId(1));
    console.log(statusformId(2));
    console.log(statusformId(3));
    console.log(statusformId(4));
哪个会回来

in the bed
face to your computer
a little bit silly
nowhere
Unknow status: 4
原因:

这表示一个具有某些索引的对象,其中0的值为“in the bed”

{
  0: 'in the bed',
  1: 'face to your computer',
  2: 'a little bit silly',
  3: 'nowhere'
}
将对象包装在子表达式中并添加索引将创建对象并返回传递的索引的值

      const status = (
        {
          0: 'in the bed',
          1: 'face to your computer',
          2: 'a little bit silly',
          3: 'nowhere'
        }
      )[id];
当使用对象未知的id时,返回undefined。 使用
| |
将返回
'Unknow status:'+id
当status有一个falsy值(如未定义、null、false等)时,否则返回实际值

  return status || 'Unknow status: '+id

const a = ({0:'zero'})[0]
console.log(a);
您最终尝试通过索引访问对象属性。您的代码可以编写如下

function statusformId(id){
      const status = {
          0: 'in the bed',
          1: 'face to your computer',
          2: 'a little bit silly',
          3: 'nowhere'
        }

      return status[id] || 'Unknow status: '+id
}
PS-您的代码片段是错误的。您在代码块中错误地添加了一个额外的“}”

const a = ({0:'zero'})[0]
console.log(a);
您最终尝试通过索引访问对象属性。您的代码可以编写如下

function statusformId(id){
      const status = {
          0: 'in the bed',
          1: 'face to your computer',
          2: 'a little bit silly',
          3: 'nowhere'
        }

      return status[id] || 'Unknow status: '+id
}

PS-您的代码片段是错误的。您在代码块中错误地添加了一个额外的“}”,这不是有效的语法!发布完整的代码…@ManasKhandelwal它可能在类或对象文本中,因此还有一个额外的
}
。该方法有效。您要将什么值传递给
statusformId
?如果不是0到3之间的数字,
typeof(status)
将是未定义的。这是一个对象文本,其中一个键将立即被访问。请参见此处:(首先,使用开关来运行数字不是一种理想的方法)
是js中类似子表达式的运算符,它允许您执行类似于
(1+2)的操作。toString()
,由于表达式内部是一个对象,因此对象被解析,因此可以通过
id
索引<代码>状态类型应返回
字符串
如果id有效,则此语法无效!发布完整的代码…@ManasKhandelwal它可能在类或对象文本中,因此还有一个额外的
}
。该方法有效。您要将什么值传递给
statusformId
?如果不是0到3之间的数字,
typeof(status)
将是未定义的。这是一个对象文本,其中一个键将立即被访问。请参见此处:(首先,使用开关来运行数字不是一种理想的方法)
是js中类似子表达式的运算符,它允许您执行类似于
(1+2)的操作。toString()
,由于表达式内部是一个对象,因此对象被解析,因此可以通过
id
索引<如果id有效,则代码>状态类型应返回
字符串