要求:
实现一个方法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] |