Javascript检查数组中的至少2个字符串为非空

时间:2018-10-03 09:29:35

标签: javascript arrays string

我有一个名为options的4个字符串组成的数组

我目前正在使用以下命令检查其中的所有元素是否为空:

options.every(option => Boolean(option))

我想检查至少2个为非空,例如:

有效

["opt1", "opt2", "", ""]  
["opt1", "opt2", "", "opt4"]

无效

["opt1", "", "", ""]  
["", "", "", ""]

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:4)

function hasEmptyStrings(arr, n) {
  return arr.filter(e => !e).length <= n
}

var arrays = [
  ["opt1", "opt2", "", ""],
  ["opt1", "opt2", "", "opt4"],
  ["opt1", "", "", ""],
  ["", "", "", ""]
]

arrays.forEach(arr => {
  console.log(hasEmptyStrings(arr, 2))
})

答案 1 :(得分:1)

您可以使用js filter方法进行检查。

const arr1 = ["opt1", "opt2", "", "opt4"];
const arr2 = ["opt1", "", "", "opt4"];

const isValid = (arr) => {
  return arr.filter(item => {
    return item.length === 0;
  }) < 2;
}

console.log(isValid(arr1));
console.log(isValid(arr2));