JavaScript中无法获取JSON数据properties实体长度问题求助
解决JSON对象属性长度获取问题
嘿,我懂你碰到的麻烦了!你之所以用.length拿不到properties的长度,是因为data.entry[0].content.properties是一个JavaScript对象(Object),而不是数组(Array)——只有数组才有原生的length属性,普通对象是没有这个属性的。
那怎么获取对象里属性的数量呢?给你几个常用的方法:
方法1:用Object.keys()(最常用)
Object.keys()会返回一个包含对象所有可枚举属性名称的数组,我们只需要取这个数组的length就行:
const propertiesObj = data.entry[0].content.properties; console.log('properties的长度:', Object.keys(propertiesObj).length);
方法2:用Object.values()或Object.entries()
原理和上面一样,这两个方法分别返回对象属性值的数组、键值对数组,取它们的length也能得到属性数量:
// 使用Object.values() console.log('properties的长度:', Object.values(propertiesObj).length); // 使用Object.entries() console.log('properties的长度:', Object.entries(propertiesObj).length);
额外:兼容数组和对象的场景
如果担心后端返回的properties有时候是数组、有时候是对象,可以加个判断兼容两种情况:
const props = data.entry[0].content.properties; const propsLength = Array.isArray(props) ? props.length : Object.keys(props).length; console.log('properties的长度:', propsLength);
内容的提问来源于stack exchange,提问作者Dodo dodo
相关产品推荐
相关产品推荐

