如何循环遍历嵌套对象中的特定键
How to loop through specific keys in nested object?
我想从这个对象中提取特定部分(绝对不是全部):
var metadata = {
cat: {
id: 'id',
name: 'kitty',
},
dog: {
id: 'id',
name: 'spot',
owner: {
name: 'ralph',
}
}
//tons of other stuff
};
我想这样做:
var fields = ['cat.id', 'dog.name', 'dog.owner.name'];
fields.forEach( function(key) {
console.log(metadata[key]); //obv doesn't work
});
这是一个简化的场景,我试图验证元数据中的特定字段。有什么直接的方法吗?
分割路径以提取单个键,然后使用reducer来解析值,然后映射结果:
var path = function(obj, key) {
return key
.split('.')
.reduce(function(acc, k){return acc[k]}, obj)
}
var result = fields.map(path.bind(null, metadata))
//^ ['id', 'spot', 'ralph']
现在你可以注销他们如果你想:
result.forEach(console.log.bind(console))
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 如何打印嵌套对象的所有值
- 设置嵌套对象属性的更好方法
- 访问嵌套JSON对象的键,其中键是动态的
- 嵌套对象结构
- 如何递归地获取嵌套对象中所有子对象的列表
- 更改嵌套对象的父子相关id
- Node.js:用作对象嵌套元素名称的变量
- Sailsjs创建对象-嵌套创建
- Jquery $.ajax 获取响应与将“this”对象嵌套传递到“success”回调函数冲突
- 从嵌套属性数组中获取对象嵌套值
- 将对象嵌套在另一个数组中
- javascript对象嵌套回调
- 当被引用对象嵌套在ExtJS 5.0.0中时,如何读取它
- 如何在不知道其位置的情况下删除Mongo对象(嵌套的2个数组)
- 排序嵌套在对象中的数组,该对象嵌套在另一个对象中
- Javascript对象嵌套
- 在Angular中创建多维/嵌套对象(嵌套forEach循环)
- 仅列出jquery中包含json对象嵌套的所有键
- 如何将一个javascript对象嵌套在另一个对象中