查找数组中是否存在某种数据类型?

时间:2017-09-06 20:45:43

标签: javascript arrays

我必须创建一个函数,在数组中的混合元素中找到最小的数字:

function findSmallestNumberAmongMixedElements(arr) {
    if (arr.length === 0) {
        return 0;
    }
  var num_arr = arr.filter(e => { return typeof e === 'number'});

  return num_arr.sort( (a, b) => { return a - b})[0];

}

var output = findSmallestNumberAmongMixedElements([4, 'lincoln', 9, 'octopus']);
console.log(output); // --> 4

似乎正在工作,但我没有通过测试,如果数组中没有数字,我必须返回0。我试图找出一种简单的方法,在开头用if语句编写它,但我找不到一个直截了当的答案。正在考虑使用includes,但似乎includes查找特定元素而不是数据类型。有什么建议?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以使用array.reduce()来做到这一点



function findSmallestNumberAmongMixedElements(arr) {
    let result = arr.reduce(function(a, b){
        if(typeof b != 'number')
            return a;
        if(typeof a != 'number')
            return b;
        return a<b ? a : b;
    })
    return (typeof result == 'number' ? result : 0);
}

var output = findSmallestNumberAmongMixedElements([4, 'lincoln', 9, 'octopus']);
console.log(output);
&#13;
&#13;
&#13;