我对如何使用lodash _.some()
函数检查集合(对象)感到有些困惑。
var x = {prop1: 800, prop2: 800, prop3: 'test'};
_.some(x, i => _.isNaN(i))
//false
_.some(x, _.isNaN)
//false
答案 0 :(得分:0)
_.isNaN('test')
返回false
。它是string
。
_.isString('test')
是您正在寻找的。 p>
_.some(x, (i) => {
console.log(_.isString(i));
});
// false
// false
// true
编辑:刚看到你的评论。如果您想检查每个值是一个数字,您可以这样做:
_.every(x, (i) => {
console.log(i);
return _.isNumber(i);
})
//false
答案 1 :(得分:0)
现在您想知道所有属性是否都是数字,您可以使用:
!_.some(x, i=> !_.isNumber(i))
我不了解_.some
和_.every
的性能差异,但您当然也可以使用:
_.every(x, i=> _.isNumber(i))
答案 2 :(得分:0)
来自lodash doc _.isNaN基于Number.isNaN,与全局isNaN不同,后者对于未定义和其他非数字值返回true。
_.some(x, isNaN)
//true