Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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/3/arrays/13.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 [0]执行什么操作,并在筛选器方法末尾传递?_Javascript_Arrays_Ecmascript 6_Filter - Fatal编程技术网

Javascript [0]执行什么操作,并在筛选器方法末尾传递?

Javascript [0]执行什么操作,并在筛选器方法末尾传递?,javascript,arrays,ecmascript-6,filter,Javascript,Arrays,Ecmascript 6,Filter,我在学习课程时得到了这个代码,但没有正确得到它。 过滤器方法结束时通过的[0]的作用是什么?它的用途是什么 let getUser = this.globalRoom.filter((userId) => { return userId.id === id; })[0] 由于filter返回的数组仅包含通过回调检查的项,因此[0]将为您提供此类列表中的第一项 然而,这是一种反模式,因为这里是作业的正确工具,原因如下: filter在整个数组中保持循环,即使您只对它的第一个结果感兴趣

我在学习课程时得到了这个代码,但没有正确得到它。 过滤器方法结束时通过的[0]的作用是什么?它的用途是什么

let getUser = this.globalRoom.filter((userId) => {
  return userId.id === id;
})[0]

由于
filter
返回的数组仅包含通过回调检查的项,因此
[0]
将为您提供此类列表中的第一项

然而,这是一种反模式,因为这里是作业的正确工具,原因如下:

  • filter
    在整个数组中保持循环,即使您只对它的第一个结果感兴趣
  • find
    准确返回第一个结果,并停止循环数组,而无需访问其第一个索引
因此,这是做同样事情的更好方法:

let getUser = this.globalRoom.find((userId) => {
  return userId.id === id;
});

您应该检查
getUser
是否返回一个值,因为as
filter
可能是一个空数组,因此访问其索引
0
将返回未定义,
find
也会返回未定义的
undefined
,如果一次没有匹配满足的条件。

什么是
[0]
与阵列一起使用时通常会做什么?