React Native中如何获取对象内数组的长度?含json.groupby场景
在React Native中获取对象内数组长度的方法
嘿,我来帮你搞定这个问题!其实在React Native里处理这种逻辑和普通JavaScript完全一致,毕竟RN的核心就是JS嘛~下面分两种场景给你详细说明:
一、获取普通对象内指定数组的长度
假设你有一个包含数组的对象,比如:
const myObject = { todoList: ['买菜', '写代码', '遛狗'], completedList: ['整理桌面'] };
要获取其中某个数组的长度,直接通过对象.数组属性名.length就能拿到:
- 获取
todoList的长度:myObject.todoList.length(结果是3) - 如果是动态的属性名,也可以用方括号语法:
myObject['todoList'].length
二、处理json.groupBy分组后的对象(获取第N个数组的长度)
用json.groupBy处理后,你会得到一个以分组标识为键、对应分组数组为值的对象。举个实际的例子,假设你按type字段分组后得到这样的结果:
const groupedResult = { '美食': [{name: '火锅'}, {name: '烧烤'}], '景点': [{name: '故宫'}, {name: '西湖'}, {name: '黄山'}], '购物': [{name: '免税店'}] };
要获取第一个、第二个数组的长度,首先得把对象的键名提取成有序数组(ES6+中对象的字符串键会按插入/定义顺序排列),步骤如下:
- 提取所有分组的键名:
const groupKeys = Object.keys(groupedResult);
这时候groupKeys就是['美食', '景点', '购物']。
- 根据索引获取对应数组的长度:
- 获取第一个数组的长度:
groupedResult[groupKeys[0]].length(结果是2) - 获取第二个数组的长度:
groupedResult[groupKeys[1]].length(结果是3)
小提示:避免报错的小技巧
如果不确定分组后的对象是否为空,或者某个索引对应的键是否存在,可以加个判断,防止出现undefined报错:
// 安全获取第一个数组的长度,为空则返回0 const firstGroupLength = groupKeys.length > 0 ? groupedResult[groupKeys[0]].length : 0;
内容的提问来源于stack exchange,提问作者rnn
相关产品推荐
相关产品推荐

