从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()更新了我的答案
根据您的注释,在过滤后的数组周围返回一个新数组,以更好地说明它们的属性。