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

时间:2017-11-27 21:59:17

标签: javascript

我有一个字符串数组

var arr = ['welcome', 'test', 'the', 'nothing'];

现在我想查找所有包含4个或更多字母的字符串。我使用以下代码,但它只返回一个字符串。

  for ( var i = 0; i < arr.length; i++) {
  if (arr[i].length >= 4) {
     return arr[i];
  }
}

如何以4个或更多字母返回所有字符串?提前谢谢。

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]); } }在找到一个匹配项后退出循环时。

试试这个:

&#13;
&#13;
    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;
&#13;
&#13;

或者,您可以将其添加到其他阵列并使用

&#13;
&#13;
Array.filter
&#13;
&#13;
&#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

进行简化

&#13;
&#13;
renderRow
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

您应该使用Javascript的CustomView方法。

Array.filter()