如何在JavaScript的getSubset函数中用变量替代单个键参数?
问题解决方法
你遇到的问题是因为传给getSubset的是一个逗号分隔的字符串,而不是函数预期的单个键或键的数组。函数无法识别字符串里的各个独立键,所以返回的子集里对应值都是undefined。
修复步骤:
- 先把
params里的bri定义为数组类型,每个目标键作为数组的独立元素:
const params = {bri: ["oid", "onVal", "offVal"]}; Light.bri = getSubset(customData, params.bri);
- 确认你的
getSubset函数支持接收数组参数。如果原来的函数只处理单个键,需要修改函数以兼容数组输入:
function getSubset(data, keys) { // 统一处理单个键和数组的情况 const targetKeys = Array.isArray(keys) ? keys : [keys]; const result = {}; targetKeys.forEach(key => { if (key in data) { result[key] = data[key]; } }); return result; }
这样修改后,就能正确从customData中提取指定键的子集了。
内容的提问来源于stack exchange,提问作者Markus Hartmann
相关产品推荐
相关产品推荐

