我有一个字符串数组
var arr = ['welcome', 'test', 'the', 'nothing'];
现在我想查找所有包含4个或更多字母的字符串。我使用以下代码,但它只返回一个字符串。
for ( var i = 0; i < arr.length; i++) {
if (arr[i].length >= 4) {
return arr[i];
}
}
如何以4个或更多字母返回所有字符串?提前谢谢。
答案 0 :(得分:3)
将所有匹配的对象累积到一个数组中并返回数组:
let filteredArray =[];
for ( var i = 0; i < arr.length; i++) {
if (arr[i].length > 3) {
filteredArray.push(arr[i]);
}
或使用功能:let filteredArray = arr.filter(v => v.length > 3)
答案 1 :(得分:1)
您可以使用Array.filter()
const filterByLength = (arr, requiredLength) => {
return arr.filter(v => v.length > requiredLength)
}
console.log(filterByLength(arr, 3)) // ['welcome', 'test', 'nothing']
答案 2 :(得分:0)
这是因为当您let arr = ["this", "is", "longer", "than", "4"];
for ( var i = 0; i < arr.length; i++) {
if (arr[i].length >= 4) {
console.log(arr[i]);
}
}
在找到一个匹配项后退出循环时。
试试这个:
let arr = ["this", "is", "longer", "than", "4"],
otherarr = [];
for ( var i = 0; i < arr.length; i++) {
if (arr[i].length >= 4) {
otherarr.push(arr[i]);
}
}
console.log(otherarr);
&#13;
或者,您可以将其添加到其他阵列并使用
Array.filter
&#13;
或者您可以使用let arr = ["this", "is", "longer", "than", "4"];
console.log(
arr.filter(function(array_element) {
return array_element.length >= 4;
})
);
方法https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
renderRow
&#13;
答案 3 :(得分:-1)
您应该使用Javascript的CustomView
方法。
Array.filter()