按长度过滤国家/地区名称

时间:2018-05-05 13:46:11

标签: javascript arrays loops

我正在尝试编写代码,允许我从名称不符合最小和最大长度要求的数组中取出国家/地区名称。所以让我们说在我的页面上我输入4表示最小值,6表示最大值。我希望我的页面只显示名称中包含4到6个字母的国家/地区名称。在Java中,我会写这个

String[] newArr = new String[0];
int pos = 0;

for(int i = 0; i > min && i<max; i++) {
    newArr[pos++] = oldArr[i]
}

但我不确定我用JavaScript写的是什么

2 个答案:

答案 0 :(得分:3)

filter阵列上使用countryNames。循环遍历每个元素并检查长度,minLength值为4maxLength值为6

var minLength = 4; maxLength = 6;
var countryNames = ['abc', 'India', 'China', 'America', 'pqr', 'Bhutan'];
var res = countryNames.filter(function(country){
  if(country.length > minLength && country.length < maxLength){
    return country;
  }
});

console.log(res);

使用forEach

var minLength = 4; maxLength = 6;
var countryNames = ['abc', 'India', 'China', 'America', 'pqr', 'Bhutan'];
var res = [];
countryNames.forEach(function(country){
  if(country.length > minLength && country.length < maxLength){
    res.push(country);
  }
});

console.log(res);

答案 1 :(得分:1)

您可以使用Array的.filter()方法过滤掉这样的名称:

let array = ['Pakistan', 'India', 'China', 'Iran', 'USA',
             'United Kingdom', 'Iraq', 'Ghana'];
let min = 4,
    max = 6;
    
let result = array.filter(({ length }) => (length >= min && length <= max));

console.log(result);

<强>文档: