如何访问属性名不完全已知的JavaScript对象属性?
获取属性名包含
totalCount的JS对象属性值的方法 核心逻辑
遍历对象的可枚举属性,匹配属性名是否包含目标字符串totalCount,匹配成功即可通过属性名读取对应值。
1. 单个对象取值实现
/** * 从单个对象中获取属性名包含totalCount的属性值 * @param {Object} obj 目标对象 * @returns {any} 匹配到的属性值,未匹配到返回null */ function getMatchedValue(obj) { for (const key in obj) { // 可根据需求替换匹配规则:startsWith('totalCount')匹配前缀、endsWith匹配后缀 if (key.includes('totalCount')) { return obj[key] } } return null } // 使用示例 const testObj = {"totalCount_12": 100} console.log(getMatchedValue(testObj)) // 输出 100
2. 针对示例数组的批量取值实现
你给出的数组示例可以用map遍历每个元素,结合上述匹配逻辑批量提取所有符合要求的值:
const demoArray = [ {"totalCount_12":100}, {"totalCount_13":100}, {"totalCount_2":100} ] const totalCountList = demoArray.map(item => { for (const key in item) { if (key.includes('totalCount')) return item[key] } return null }) // 输出结果:[100, 100, 100] console.log(totalCountList)
特殊场景适配
如果单个对象可能存在多个包含totalCount的属性,可以将所有匹配值存到数组中返回:
function getAllMatchedValues(obj) { const res = [] for (const key in obj) { if (key.includes('totalCount')) { res.push(obj[key]) } } return res }
内容的提问来源于stack exchange,提问作者rubalvjaiswal
相关产品推荐
相关产品推荐

