使用数组元素和数组字符串查找重复元素计数

问题描述

我要在一个函数中传递数组元素和数组字符串,然后转换为字符串并查找重复的元素计数。

function count5numbers1(arr,arr1) {
  let m1 = arr.toString().match(/[5]/gi);
  let m2 = arr1.toString().match(/[5]/gi);
  if (m1 === null && m2 != null) {
    return m1 = 0;
  } else if (m1 != null) {
    return m1.length;
  } else if (m2 === null) {
    return m2 = "it's not a number";
  } else {
    return m2.length;
  }
}
console.log(count5numbers1([1,2,5,43],[5]));
console.log(count5numbers1([1,3,5],4,2],[5]));
console.log(count5numbers1([2,54,15],55,555],[5]));
console.log(count5numbers1([6,1],[5]));
console.log(count5numbers1(['notnumber,its a string'],[]));

但是我只需要使用单个参数m1即可得到相同的结果。

结果将是: 1个 1个 0 2 6 0 这不是数字

解决方法

function count5numbers1(arr) {
  const m1 = arr.toString().match(/[5]/g);
  if (arr.some(e => typeof e != 'number')) {
    return "it's not a number";
  } else if (m1 === null) {
    return 0;
  } else {
    return m1.length;
  }
}

console.log(count5numbers1([1,2,5,43]));
console.log(count5numbers1([1,3,5]));
console.log(count5numbers1([1,4,2]));
console.log(count5numbers1([2,54,15]));
console.log(count5numbers1([1,55,555]));
console.log(count5numbers1([6,1]));
console.log(count5numbers1(['notnumber,its a string']));