首页 > 解决方案 > 如何验证数组中的字母是否重复?

问题描述

我想验证数组中的字符串重复不超过 3 次,即:

let array = ['A', 'A', 'A', 'B']
let array2 = ['A', 'A', 'A', 'A', 'B'] <-- Not valid

如果它接收的数组具有重复这些时间的值,则代码不会继续工作

谢谢

标签: javascriptarraysvalidation

解决方案


您可以将array.some()array.filter()结合使用来检查一个值是否只存在 x 次。

const array = ['A', 'A', 'A', 'B'];
const array2 = ['A', 'A', 'A', 'A', 'B'];

const isValid = (arr, limit) => {
  return !arr.some((char) => (
    arr.filter((ch) => ch === char).length > limit
    // use the next line for a case insensitive check
    // arr.filter((ch) => ch.toLowerCase() === char.toLowerCase()).length > limit
  ));
}

console.log(isValid(array, 3));
console.log(isValid(array2, 3));


推荐阅读