#实现一个方法sameNumbers,找出同时存在于两个数组的所有数字
- 需要处理异常传参,情况不限于:
- 未传入arr1或arr2
- arr1或arr2不是数组
- 字符串格式的数字需要转为数字,如:'1'需先转化为1再进行查重比较
- 返回结果需要过滤所有非数字项
#实现一个方法sameNumbers,找出同时存在于两个数组的所有数字
你题目的解答代码如下:
function sameNumbers(arr1,arr2) {
if (!Array.isArray(arr1) || !Array.isArray(arr2)) {
alert("arr1或arr2不是数组");
return;
}
var a = [];
arr1.forEach(function(v, i){
if (typeof(v)!="Number") {
v = parseFloat(v)
}
if (!isNaN(v)) {
a.push(v);
}
});
var b = [];
arr2.forEach(function(v, i){
if (typeof(v)!="Number") {
v = parseFloat(v)
}
if (!isNaN(v)) {
b.push(v);
}
});
var res = a.filter(x => b.indexOf(x)!=-1);
console.log(res);
}
sameNumbers([1,"2","A",3],["3",4,false,2]);
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!