下面给出了如何编写一个返回小于100的数字的函数?
const myArray = ['hello', 3, true, 18, 10,, 99 'ten', false]
const isLessThan100 = (array) => {
// how to do this? Solution enter here
}
我认为它涉及filter方法,但是我不确定如何同时过滤小于100和不是字符串的数字。
谢谢!
答案 0 :(得分:3)
您可以先检查它是否是数字
const myArray = ['hello', 3, true, 18, 10, 99, 'ten', false];
const isLessThan100 = myArray.filter(item => {
return (typeof item === "number") && item < 100;
});
答案 1 :(得分:2)
typeof运算符返回一个字符串,该字符串指示未评估的操作数的类型。
您可以先检查typeof
项是否为number
,然后检查其是否小于100
。
您可以通过删除花括号将代码减少到一行。
按以下方式尝试Array.prototype.filter()
:
const myArray = ['hello', 3, true, 18, 10,, 99, 'ten', false]
const isLessThan100 = (array) => array.filter(num => typeof(num) === "number" && num < 100);
console.log(isLessThan100(myArray))
const isLessThan100 = (array)
答案 2 :(得分:2)
这是一个使用filter的矮个子:
const myArray = ['hello', 3, true, 18, 10, 99, 101, 'ten', false];
const isLessThan100 = a => a.filter(e => +e === e && e < 100);
console.log(isLessThan100(myArray));
答案 3 :(得分:0)
仅获取单个值,可以减少数组。
const
array = ['hello', 3, true, 18, 10,, 99, 'ten', false],
isLessThan100 = array => array.reduce((r, v) =>
typeof v === 'number' && v < 100 && (typeof r !== 'number' || v > r)
? v
: r,
undefined);
console.log(isLessThan100(array));