2016-11-22 5 views
0

lodash _.some()関数を使ってコレクション(オブジェクト)をチェックする方法についてちょっと混乱します。lodashでコレクションの正しいタイプを確認する

var x = {prop1: 800, prop2: 800, prop3: 'test'}; 

_.some(x, i => _.isNaN(i)) 
//false 

_.some(x, _.isNaN) 
//false 
+0

どのような質問がありますか? – Eddi

+0

prop3が文字列であるため、some-fnの両方の結果が真であることをお勧めします。 – Zantinger

+0

これは正しくありません。 '_.isNaN(" string ")'はNaNではないので、falseを返します。コンソールなどでこのステートメントを実行しようとすると、それが表示されます。 – Eddi

答えて

0

:あなたはすべての値を確認したい場合は、あなたが行うことができます数ある

!_.some(x, i=> !_.isNumber(i)) 

私は「ドントン_.some_.everyのperforamanceの違いを知っていますが、もちろん使用することができます

_.every(x, i=> _.isNumber(i)) 
0

_.isNaN('test')戻り値falseです。それはstringです。

_.isString('test')はあなたが探しているものです。

_.some(x, (i) => { 
    console.log(_.isString(i)); 
}); 

// false 
// false 
// true 

編集:あなたのコメントを見ました。今、あなたは、プロパティのすべてが数値である、あなたがこれを使用できるかどうかを知りたいという

_.every(x, (i) => { 
    console.log(i); 
    return _.isNumber(i); 
}) 

//false 
0

lodashドキュメントから _.isNaNがありますNumber.isNaNに基づいており、未定義およびその他の非数値値に対して真を返すグローバルisNaNとは異なります。

_.some(x, isNaN) 
//true 
関連する問題