【问题标题】:removing elements from array which are not numbers using pure js使用纯js从数组中删除不是数字的元素
【发布时间】:2021-12-04 18:03:44
【问题描述】:

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

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

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

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;
}

【问题讨论】:

  • 请提供示例输入/输出供我们测试。
  • console.log(['item1', 2, 3, 'item4'],['1','second','3rd',4]);答案应该是 [2,3,4]

标签: pure-js


【解决方案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]

【讨论】:

  • 以前从未听说过 isFinite() 非常感谢!
  • 如果答案对您有所帮助,请毫不犹豫地接受它作为答案来结束您的问题:')
猜你喜欢
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-12-31
相关资源
最近更新 更多