Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Filter - Fatal编程技术网

在JavaScript中使用筛选器方法时遇到问题

在JavaScript中使用筛选器方法时遇到问题,javascript,arrays,filter,Javascript,Arrays,Filter,我目前正在学习一门JavaScript课程,正在进行一个练习,在这个练习中,我应该创建一个函数,当应用于数组时,该函数将返回一个新的数组,该数组只使用少于10个字符的字符串进行过滤 经过几次尝试后,我确信这将是一个,但失败了 function validUserNames(array) { return array.filter(function(el) { el.length < 10 } ); } 函数validUserNames(数组){ 返回array.filter(函

我目前正在学习一门JavaScript课程,正在进行一个练习,在这个练习中,我应该创建一个函数,当应用于数组时,该函数将返回一个新的数组,该数组只使用少于10个字符的字符串进行过滤

经过几次尝试后,我确信这将是一个,但失败了

function validUserNames(array) {
   return array.filter(function(el) { el.length < 10 } );
}  
函数validUserNames(数组){
返回array.filter(函数(el){el.length<10});
}  
有人能帮上忙吗?

这没问题

function validUserNames(array) {
   return array.filter(function(el) { return el.length < 10 } );
}

console.log(validUserNames(['foo', 'bar', 'baz', 'foobarbazzz']));
当您添加回大括号时(假设您的函数跨越多行),需要包含return语句

i、 e

returnarray.filter(el=>{returnel.length<10});
问题在于需要一个返回truthy或falsy值的函数。您当前没有从提供的函数返回任何内容,这意味着返回值总是
未定义的
(falsy)。这将在筛选后导致空数组

您应该在传递给
过滤器的提供函数中添加
return
语句:

函数validUserNames(数组){
返回数组.filter(函数(el){return el.length<10});
}
或者使用不带括号的(
{
}
)隐式返回:

函数validUserNames(数组){
返回数组.filter(el=>el.length<10);
}

My Error,已编辑。可能只需要添加一条返回语句,即
return el.length<10;}。在筛选方法之前,我已经有一个return语句。你是说我应该把它写在filter方法本身吗?这就解决了它!谢谢,我对加倍返回语句感到有点困惑,没有意识到过滤方法需要函数来返回一些东西
return array.filter(el => el.length < 10);
return array.filter(el => { return el.length < 10 });