私は、(残念ながら!) 私の範囲外にある JS オブジェクトからオブジェクト プロパティの名前を取得するこの作業コードを持っています。したがって、このオブジェクトの構築方法を変更することはできません。true
しかし、このオブジェクトをより簡単に処理できるように、 としてマークされているプロパティの名前を配列として抽出したいと考えています。
物体:
{
group1: {
foo: true,
itemFoo: "Name of foo", // This is what I want, because foo is true
bar: false,
itemBar: "Name of bar", // I dont want this, bar is false
// ...
},
group2: {
baz: true,
itemBaz: "Name of baz", // I want this too
// ...
},
uselessProp1: "not an object",
// ...
}
作業コード:
var items = [];
for (var m in obj) {
if (typeof obj[m] == 'object') {
for (var n in obj[m]) {
if (obj[m][n] === true) {
items.push(obj[m]['item' + (n.charAt(0).toUpperCase() + n.slice(1))]);
}
}
}
}
私の質問は、underscore.jsまたはプレーンnode.jsまたはその他のライブラリを使用してこのトラバーサルを実現するよりエレガントな方法を知っている人はいますか? で実験し_.filter
ましたが、解決策が思いつきませんでした。