【发布时间】:2017-11-23 02:24:43
【问题描述】:
var data = {
'id': 'object1',
'sceneCapability': {
'updatedAt': '2017-06-19T20:52:45.688Z'
'currentScene': {
'value': {
'number': 1,
'name': '1'
}
},
'outOfTune': {
'value': false
}
},
'lightingCapability': {
'intensity': {
'value': 0
}
},
'tiltCapability': {
'command': {
'value': 'NO'
},
'position': {
'value': 0
}
}
// like this I have different types of more than 20 Capabilities
};
如何编写一个通用方法来解析这个对象?我需要获取currentScene 值、outOfTune、intensity、command、position 等...
有时我只获得一种能力,有时我获得超过 20 种能力。
我想避免这样做,因为将来可能会有数百种不同的功能
if (obj.lightingCapability && obj.lightingCapability.intensity) {
console.log(obj.lightingCapability.intensity.value)
}
if (device.sceneCapability && device.sceneCapability.outOfTune) {
// do something
}
输出我想要的东西
currentScene:1,
outOfTune: false,
intensity: 0,
command: 'NO',
position: 0
【问题讨论】:
-
您的密钥是否总是以“能力”一词结尾?
-
@kevin628 是的,它们总是以 Capability 结尾。
标签: javascript angular typescript ecmascript-6 javascript-objects