Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 - Fatal编程技术网

从JavaScript中的字符串数组返回多个字符串

从JavaScript中的字符串数组返回多个字符串,javascript,Javascript,我有一个字符串数组 var arr = ['welcome', 'test', 'the', 'nothing']; 现在我想找到所有有4个或更多字母的字符串。我使用以下代码,但它只返回一个字符串 for ( var i = 0; i < arr.length; i++) { if (arr[i].length >= 4) { return arr[i]; } } for(变量i=0;i=4){ 返回arr[i]; } } 如何返回包含4个或更多字母的所有

我有一个字符串数组

var arr = ['welcome', 'test', 'the', 'nothing'];
现在我想找到所有有4个或更多字母的字符串。我使用以下代码,但它只返回一个字符串

  for ( var i = 0; i < arr.length; i++) {
  if (arr[i].length >= 4) {
     return arr[i];
  }
}
for(变量i=0;i=4){
返回arr[i];
}
}
如何返回包含4个或更多字母的所有字符串?提前谢谢。

您可以使用

你可以用


您应该使用Javascript的
Array.filter()
方法


arr.filter(string=>string.length>4)
您应该使用Javascript的
Array.filter()方法


arr.filter(string=>string.length>4)

将所有匹配的对象累加到一个数组中并返回数组:

  let filteredArray =[];
  for ( var i = 0; i < arr.length; i++) {
  if (arr[i].length > 3) {
     filteredArray.push(arr[i]);
  }
让filteredArray=[];
对于(变量i=0;i3){
推(arr[i]);
}

或者使用一个函数:
让filteredArray=arr.filter(v=>v.length>3)
将所有匹配的对象累加到一个数组中并返回数组:

  let filteredArray =[];
  for ( var i = 0; i < arr.length; i++) {
  if (arr[i].length > 3) {
     filteredArray.push(arr[i]);
  }
let filterDarray=[];
对于(变量i=0;i3){
推(arr[i]);
}

或者使用一个函数:
let filteredArray=arr.filter(v=>v.length>3)
这是因为当您
返回时,您在循环只找到一个匹配项后退出循环

试试这个:

让arr=[“this”、“is”、“longer”、“than”、“4”];
对于(变量i=0;i=4){
控制台日志(arr[i]);
}

}
这是因为当您
返回
时,您将在循环只找到一个匹配项后退出循环

试试这个:

让arr=[“this”、“is”、“longer”、“than”、“4”];
对于(变量i=0;i=4){
控制台日志(arr[i]);
}

}
这正是目的所在。第一个示例几乎就是您想要的(7个字母而不是4个)。请在询问之前尝试搜索这正是目的所在。第一个示例几乎就是您想要的(7个字母而不是4个字母).请在询问这与我已经给出的答案有什么不同之前尝试搜索?我用原始代码和
arr.filter(v=>v.length>3)回答
不会更改
arr
。您没有将函数结果赋给变量。因此它是无用的。@peteb它们完全不同:这对
循环使用
,您使用的是
filter
@ibrahimmahrir,这是在我最初的注释之后编辑的。还有
arr.filter()
part.@peteb对于琐碎的问题,多个类似的答案是常见的。为什么这么多关注?这与我已经给出的答案有什么不同?我用原始代码和arr.filter(v=>v.length>3)来回答
不会更改
arr
。您没有将函数结果赋给变量。因此它是无用的。@peteb它们完全不同:这对
循环使用
,您使用的是
filter
@ibrahimmahrir,这是在我最初的注释之后编辑的。还有
arr.filter()
part.@peteb对于一些琐碎的问题,多个类似的答案是常见的。为什么要这么担心呢?
arr.filter(v=>v.length>3)
不会改变
arr
。你没有将函数结果赋给变量。因此它是无用的。这段代码仍然不正确。你仍然没有赋值
filterByLength(arr,3)
到一个变量。这会更好,例如:
const newArr=filterByLength(arr,3)
@davidxxx我知道
filter()
返回一个新的数组实例,并且不执行数组的内联变异
filter()调用了
。由于所问的问题没有演示结果的用法,我选择不将其分配给某个任意变量,而是让询问者根据他们认为合适的方式使用结果。我用
控制台.log()更新了我的答案
根据您的注释,在过滤后的数组周围返回一个新数组,以更好地说明它们的属性。
arr.filter(v=>v.length>3)
不会更改
arr
。您不会将函数结果赋给变量。因此它是无用的。此代码仍然不正确。您仍然没有分配
filterByLength(arr,3)
到一个变量。这会更好,例如:
const newArr=filterByLength(arr,3)
@davidxxx我知道
filter()
返回一个新的数组实例,并且不执行数组的内联变异
filter()调用了
。由于所问的问题没有演示结果的用法,我选择不将其分配给某个任意变量,而是让询问者根据他们认为合适的方式使用结果。我用
控制台.log()更新了我的答案
根据您的注释,在过滤后的数组周围返回一个新数组,以更好地说明它们的属性。