优化这段代码 let values = []; // 初始化所选择的月份数据 for(let i=0; i<this.monthValue.length; i++){ values.push([]) } res.forEach((item, index) => { // 确保数据对应月份 this.monthValue.some((month) => { if (res[index][0].month == month) { let mIndex = null; // 拿到月份数据在数组中的序号 this.monthValue.forEach((item1, index1) => { if(item1 == month){ mIndex = index1 } }); // 数据赋值到对应月份 values[mIndex] = item.map((m) => { return [m.wrwMin, m.wrw25, m.wrwZhong, m.wrw75, m.wrwMax]; }) } }); });
时间: 2024-02-21 14:56:59 浏览: 37
js代码-数组拍平/扁平化
可以优化的地方有:
1. 使用数组的 map 方法来代替 forEach 方法,可以让代码更简洁易懂。
2. 不需要使用 some 方法遍历数组,可以直接使用 indexOf 方法或 includes 方法来查找数组中是否包含指定元素。
3. 可以将获取月份数据在数组中的序号的代码提取出来,避免重复遍历数组。
4. 可以将数据赋值到对应月份的代码提取出来,避免重复写代码。
优化后的代码如下:
```javascript
let values = new Array(this.monthValue.length).fill([]);
res.forEach((item) => {
const month = item[0].month;
const mIndex = this.monthValue.indexOf(month);
if (mIndex !== -1) {
values[mIndex] = item.map((m) => {
return [m.wrwMin, m.wrw25, m.wrwZhong, m.wrw75, m.wrwMax];
});
}
});
```
阅读全文