1. ホーム
  2. javascript

[解決済み] Lodashでオブジェクトのプロパティを削除する

2023-03-11 17:18:08

質問

モデルに合わない不要なオブジェクトのプロパティを削除する必要があります。Lodashでそれを実現するにはどうしたらよいでしょうか?

私のモデルは

var model = {
   fname: null,
   lname: null
}

サーバーに送信する前の私のコントローラーの出力は、次のようになります。

var credentials = {
    fname: "xyz",
    lname: "abc",
    age: 23
}

を使えると認識しています。

delete credentials.age

というのがありますが、不要なプロパティがたくさんある場合はどうすればいいのでしょうか?Lodashで実現できるのでしょうか?

どのように解決するのですか?

プロパティ一覧の取得 model を使って _.keys() を使用し、さらに _.pick() からプロパティを抽出するために credentials から新しいオブジェクトに変換します。

var model = {
   fname:null,
   lname:null
};

var credentials = {
    fname:"xyz",
    lname:"abc",
    age:23
};

var result = _.pick(credentials, _.keys(model));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

Lodashを使いたくない場合は Object.keys() とか Array.prototype.reduce() :

var model = {
   fname:null,
   lname:null
};

var credentials = {
    fname:"xyz",
    lname:"abc",
    age:23
};

var result = Object.keys(model).reduce(function(obj, key) {
  obj[key] = credentials[key];
  return obj;
}, {});

console.log(result);