1. ホーム
  2. ジャバスクリプト

[解決済み】lodashでオブジェクトのキーをフィルタリングする方法は?

2022-04-06 20:59:34

質問

いくつかのキーを持つオブジェクトがあり、いくつかのキーとその値だけを保持したいのですが?

で試してみました。 filter :

const data = {
  aaa: 111,
  abb: 222,
  bbb: 333
};

const result = _.filter(data, (value, key) => key.startsWith("a"));

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

しかし、それは配列を印刷する。

[111, 222]

それは私が望んでいるものではありません。

lodashでどうやるの?または、lodashが使えない場合は他の方法で?

解決方法は?

Lodashは _.pickBy 機能 は、まさにあなたが求めていることを実現するものです。

var thing = {
  "a": 123,
  "b": 456,
  "abc": 6789
};

var result = _.pickBy(thing, function(value, key) {
  return _.startsWith(key, "a");
});

console.log(result.abc) // 6789
console.log(result.b)   // undefined
<script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>