要求:
实现一个方法sameNumbers
,找出同时存在于两个数组的所有数字
- 需要处理异常传参,情况不限于:
- 未传入arr1或arr2
- arr1或arr2不是数组
- 字符串格式的数字需要转为数字,如:
'1'
需先转化为1
再进行查重比较
- 返回结果需要过滤所有非数字项
function sameNumbers(arr1, arr2) {
// 你的代码
if (!Array.isArray(arr1) || !Array.isArray(arr2)) {
console.log("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, 5, 6], [2, 6, 7])
// 得到
[6]