前台数据处理之键与值

114 阅读2分钟

前言

依稀记得上一家公司,我眼看着一波又一波的裁员过去,整天提心吊胆,直至整个项目组几近覆没。于是,当我听到目前的公司传来危险信号时,已心如止水。我左右不了形势,我知道我最需要的是什么。那么就努力去做,也许不尽如人意,但总会有那么一天,或早或晚。

后知后觉的我,脸皮也变得越来越厚,不懂就问。我十分感激每一位愿意帮助我的前辈。比如我的导师们,还有后台的兄弟们。是的,有时候后台也教我写代码。他们真的很棒。我也不怕他们笑话我,他们甚至比我还小呢。

总要写点什么,证明我来过。写给自己,写给未知的明天。

◆模拟前台收集到的数据

let searchKeys = {
    // air 系列
    airDay1: 20,
    airDay2: 30,
    airDay3: 40,
    airRatio1: 30,
    airRatio2: 20,
    airRatio3: 50,
    // sea 系列
    seaDay1: 10,
    seaDay2: 20,
    seaDay3: 40,
    seaRatio1: 90,
    seaRatio2: 5,
    seaRatio3: 5,
}

处理一:将原始值处理为新对象的键和值

let airDayArr = [
    searchKeys.airDay1,
    searchKeys.airDay2,
    searchKeys.airDay3
]
let airRatioArr = [
    searchKeys.airRatio1,
    searchKeys.airRatio2,
    searchKeys.airRatio3
]
let airParams = {}
airDayArr.forEach((item, index) => {
    if (item !== '') {
        // ratio 用小数点表示
        let value = airRatioArr[index] / 100
        airParams[item] = value
    }
})
console.log(airParams);
//{ '20': 0.3, '30': 0.2, '40': 0.5 }

处理二:将原始值作为新对象指定的键的值

let transKey = ['first', 'second', 'third']
let seaDayArr = [
    searchKeys.seaDay1,
    searchKeys.seaDay2,
    searchKeys.seaDay3
]
let seaRatioArr = [
    searchKeys.seaRatio1,
    searchKeys.seaRatio2,
    searchKeys.seaRatio3
]
let seaParams = {}
transKey.forEach((item, index) => {
    if (item !== '') {
        let daysValue = seaDayArr[index]
        // ratio 用小数点表示
        let ratioValue = seaRatioArr[index] / 100
        seaParams[item] = {
            days: daysValue,
            ratio: ratioValue
        }
    }

})
console.log(seaParams);
//{
//  first: { days: 10, ratio: 0.9 },  
//  second: { days: 20, ratio: 0.05 },
//  third: { days: 40, ratio: 0.05 }  
//}

结语

最开始的时候还有点懵逼,其实简单得要死。就好比你知道有那么一个方法去做,但就是在那个节骨眼,你六神无主,阿弥陀佛了。

关于代码,我就不赘述了,你们比我强,洗洗睡吧。