0

我被一项任务困住了,希望你能帮助我

我必须返回一个仅由数字组成的组合数组。因此,如果元素除了数字之外还有另一个字符,则应删除该元素。

我没有什么想法。不幸的是,它们都不能正常工作。提供我的代码

function combineArray(arr1, arr2) {
    let array1 = filt(arr1);
    let array2 = filt(arr2);
    let arr3 = array1.concat(array2);
    return arr3;
}
function filt(array){
  array.forEach(function(item,index) {
    if (typeof item !== 'number'){
      array.splice(index, 1);
  }
  })
  return array;
}
4

1 回答 1

1

这是一个简单的解决方案,它filter在数组上使用该方法并Number.isFinite检查变量是否为数字:

function combineArray(arr1, arr2) {
    let array1 = filt(arr1);
    let array2 = filt(arr2);
    let arr3 = array1.concat(array2);
    return arr3;
}

function filt(array) {
  return array.filter(x => Number.isFinite(x));
}


console.log(combineArray(['item1', 2, 3, 'item4'],['1','second','3rd',4]));

这输出:[2, 3, 4]

于 2021-10-17T11:46:23.387 回答