次のような Javascript オブジェクトがあります:
var my_object = { a:undefined, b:2, c:4, d:undefined };
未定義のプロパティをすべて削除するにはどうすればよいでしょうか? 偽の属性はそのまま残す必要があります。
ベストアンサー1
_.omit()
と合成_.isUndefined
を単純に連鎖し_.isNull
、遅延評価で結果を得ることができます。
var result = _(my_object).omit(_.isUndefined).omit(_.isNull).value();
2016年3月14日更新:
コメント セクションでdylantsが述べたように、_.omitBy()
プロパティではなく述語を使用するため、関数を使用する必要があります。これは、lodash バージョン4.0.0
以上で使用する必要があります。
var result = _(my_object).omitBy(_.isUndefined).omitBy(_.isNull).value();
2016年6月1日更新:
Max Truxaがコメントしたように、lodash はすでにと の_.isNil
両方をチェックする代替手段を提供しています。null
undefined
var result = _.omitBy(my_object, _.isNil);