js filter()
listType(queryParams.value).then(response => {filterTable.value = response.rows.slice(1); // 只显示前3条数据;filterTable.value = filterTable.value.filter(item => {return wnSensorsList.value.some(sensorsgroup => {return sensorsgroup.sensorType === item.code;});})getHistoricalData();});
这段代码中的 return 有两个层级,分别有不同的含义:
1. 外层 return (第110行):
- 这是 filter 方法的回调函数返回值
- 返回 true 表示保留当前 item , false 表示过滤掉
- 返回值决定了 filterTable 数组中哪些元素会被保留
2. 内层 return (第112行):
- 这是 some 方法的回调函数返回值
- 返回 true 表示当前 sensorsgroup 满足条件, false 表示不满足
- 只要有一个 sensorsgroup 满足条件, some 方法就会返回 true
整体逻辑:
- 对于 filterTable 中的每个 item ,检查 wnSensorsList 中是否有至少一个 sensorsgroup 的 sensorType 与 item.code 匹配
- 如果匹配,外层 return 返回 true ,保留该 item
- 如果不匹配,外层 return 返回 false ,过滤掉该 item