Lodashを使い始めたばかりで、このオブジェクトの配列があります。プロパティの1つは整数かnullです。 nullのアイテムの配列をフィルター処理する方法は知っていますが、nullでないかどうかを確認するにはどうすればよいですか?
次のようなものがあるとしましょう:
var users = [
{ 'user': 'barney', 'default': 1 },
{ 'user': 'dino', 'default': 0 },
{ 'user': 'wilma', 'default': 1 },
{ 'user': 'fred', 'default': null }
];
そして、私は次のようなものが欲しいです:
var notNullDefault = _.filter(sourceData, ['is_default', ! null ]); // objects with names barney, dino, wilma
var nullDefault = _.filter(sourceData, ['is_default', null ]); // object with name fred
繰り返しますが、私はlodashが初めてなので、これを達成するためのより良い方法があるかもしれません。
前もって感謝します。
デフォルトユーザーではなくデフォルトユーザーをチェックするいくつかの述語関数を作成できます。
var isDefaultUser = function(user){
return _.isNull(user.default);
}
var isNotdefaultUser = _.negate(isDefaultUser);
その後、フィルタリングなどに使用できます。
var defaultUser = _.filter(users, isDefaultUser);
var notDefaultUsers = _.filter(users, isNotdefaultUser);
// partition will be an array; first element contains the default users
// second element contains the non default users
var parition = _.partition(users, isDefaultUser);
let items = [1, 2, 4, null];
let isHaveNull = _.some(items, (item) => _.isNull(item));
console.log(isHaveNull);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
次のようなもので試してください:
var notNullDefault = _.filter(users, function(elem) { return elem.default !== null; });
var nullDefault = _.filter(users, function(elem) { return o.default === null; }); // object with name fred
返される配列には、コールバック関数がtrue
を返す要素のみが含まれます。
または、 ファインマニュアル :に入れて、コレクションの要素を反復処理し、すべての要素の配列を返すと、真偽を返します。述部は、3つの引数で呼び出されます:(値、インデックス|キー、コレクション)。
これらのライブラリは時間の浪費に過ぎない場合があると思います。ライブラリに依存する特定の要約を学習する代わりに、矢印とともにES6配列関数を十分に把握することが最善です。それでは、どうぞ。
var users = [
{ 'user': 'barney', 'default': 1 },
{ 'user': 'dino', 'default': 0 },
{ 'user': 'wilma', 'default': 1 },
{ 'user': 'fred', 'default': null }
],
userNull = [],
userFull = [];
users.forEach(e => e.default == void 0 ? userNull.Push(e) : userFull.Push(e));
document.write("<pre> userNull:\n" + JSON.stringify(userNull, null, 2) + "</pre>");
document.write("<pre> userFull:\n" + JSON.stringify(userFull, null, 2) + "</pre>");