我有这个工作代码,它从一个 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
,但没有提出解决方案。