如何基于指定字符串过滤二维数组,返回目标子数组?
过滤二维数组保留含指定字符串的子数组
给定二维数组:
const roles = [ ['roles', 'admin', 'write'], ['roles' ,'admin', 'read'], ['roles', 'member', 'read']];
需要筛选出包含'member'的子数组,预期结果为['roles', 'member', 'read'],可以用JavaScript的filter结合includes方法实现:
实现代码
// 方式一:先获取所有符合条件的子数组 const filteredRoles = roles.filter(subArray => subArray.includes('member')); // 若确定仅存在一个符合条件的子数组,直接取第一个元素 const result = filteredRoles[0]; // 方式二:简写为一行 const result = roles.filter(subArray => subArray.includes('member'))[0];
逻辑说明
filter方法遍历二维数组的每一个子数组,返回所有满足判断条件的子数组组成的新数组。includes方法用于检查当前子数组中是否包含目标字符串'member',返回布尔值。
如果场景中可能存在多个包含'member'的子数组,直接使用filteredRoles即可得到所有符合条件的结果;若仅需单个结果,取数组第一个元素即可。
内容的提问来源于stack exchange,提问作者Faishal
相关产品推荐
相关产品推荐

