如何获取动态键名的JavaScript字典中add/delete数组的长度?
获取动态键名对象中add和delete数组的长度
给定的JavaScript对象外层键名是动态值(如示例中的"F1.1"),无法直接通过固定键名访问内层结构,可通过以下几种方式获取add和delete数组的长度:
方法一:针对外层仅单个键的场景
直接通过Object.values()提取内层对象,再访问数组长度:
const data = {"F1.1": {"add": [{"id": 169138,"name": "volkswagen"},{"id": 173212,"name": "skoda"}],"delete": [{"id": 175555,"name": "mercedes"}]}}; // 提取唯一的内层对象 const innerObj = Object.values(data)[0]; // 获取数组长度 const addArrLength = innerObj.add.length; // 结果:2 const deleteArrLength = innerObj.delete.length; // 结果:1
方法二:兼容外层多个动态键的场景
通过Object.keys()遍历所有外层键,逐个处理内层对象:
const data = {"F1.1": {"add": [{"id": 169138,"name": "volkswagen"},{"id": 173212,"name": "skoda"}],"delete": [{"id": 175555,"name": "mercedes"}]}}; // 遍历所有外层键 for (const key of Object.keys(data)) { const innerObj = data[key]; const addLen = innerObj.add.length; const deleteLen = innerObj.delete.length; console.log(`键${key}对应的add数组长度:${addLen},delete数组长度:${deleteLen}`); }
方法三:用Object.entries()解构获取内层对象
通过Object.entries()获取键值对数组,解构提取内层对象:
const data = {"F1.1": {"add": [{"id": 169138,"name": "volkswagen"},{"id": 173212,"name": "skoda"}],"delete": [{"id": 175555,"name": "mercedes"}]}}; // 解构第一个键值对的value部分 const [, innerObj] = Object.entries(data)[0]; const addLength = innerObj.add.length; const deleteLength = innerObj.delete.length;
内容的提问来源于stack exchange,提问作者Ashok
相关产品推荐
相关产品推荐

