こんにちは。
こんな方法もありますという一案を回答します。
Lodash の _.pickBy を使います。
javascript
1const obj = { id01: false, id02: true, id03: false, id04: false, id05: true };
2
3const obj2 = _.pickBy(obj, v => v);
4
5console.log(obj2); // => 表示例: Object {id02=true, id05=true}
ちなみに、上記のコードで表示結果が、 Object {id02=true, id05=true}
のように id02
, id05
の順に表示されていても、ソートされているわけではないと考えたほうがよいです。というのも、以下のように、Object のプロパティには順序がないからです。
4.3.3 Object
An object is a member of the type Object. It is an unordered collection of properties each of which contains a primitive value, object, or function. A function stored in a property of an object is called a method.
ですので、上記のコードで作った obj2
のエントリをプロパティの昇順で並べた配列を得たいのであれば、例えば以下のようにします。
javascript
1const sortedEntries = Object.entries(obj2).sort((e1,e2) => e1[0].localeCompare(e2[0]));
2
3console.log(sortedEntries); // => [["id02", true], ["id05", true]]
以下は、上記に挙げたコードを動作確認するためのものです。
以上、参考になれば幸いです。