使用JavaScript根据嵌套对象的token值过滤数组
JavaScript 实现嵌套字段过滤数组方案
实现代码
你可以直接使用数组的filter方法完成筛选,同时要注意对空值的兼容判断,避免运行时报错:
// 定义待匹配的目标token const targetToken = "4f1f17f6503e4c5a3a269ecf93d6c92d"; // 筛选符合条件的对象 const filteredData = data.filter(item => { // 兼容ES2020以下版本的写法,先判断token非空再访问嵌套字段 return item.token !== null && item.token.token === targetToken; }); // 如果需要直接覆盖原data变量,执行以下代码即可 // const data = filteredData;
如果你的运行环境支持ES2020及以上版本,可以用可选链简化写法:
const targetToken = "4f1f17f6503e4c5a3a269ecf93d6c92d"; const filteredData = data.filter(item => item?.token?.token === targetToken);
逻辑说明
Array.filter会遍历原数组,返回所有判断条件为true的元素组成的新数组,不会修改原数组数据- 先判断
item.token不为空,是为了跳过token为null的项,避免直接访问token.token时抛出Cannot read properties of null类型错误 - 最后判断嵌套的token字段值和目标值完全匹配,即可得到你需要的筛选结果
内容的提问来源于stack exchange,提问作者gowdham
相关产品推荐
相关产品推荐

