为什么又要开一篇js 数据处理(二)呢,原因有两个,上一个数据处理已经写了很多内容了,导致看起来有点儿疲惫,其次是这篇更多记得的可能是es6 或者 vue3方面的,到时候也可能会开个ts的命名为 ts 数据处理(3), 哈哈哈
1、es6 解构赋值,过滤出一个数组对象中的某些键值对
questionBank= [
{
"id": 1,
"group": "group1",
"title": "title",
"selects": "没有"
},
{
"id": 2,
"group": "group2",
"title": "title",
"selects": "有"
},
]
像以上的数组中 我要拿取里面每个对象的id和group的键值对
笨方法:
let questionBankLog = []
questionBank.forEach(element => {
let obj = {}
Object.keys(element).forEach(key => {
if (key === 'id' || key === 'group') {
obj[key] = element[key]
questionBankLog.push(obj)
}
})
});
较优雅的方法
let questionBankLog = []
questionBank.forEach(element => {
let { title, selects, ...filterData } = element
questionBankLog.push(filterData)
});
2、使显示的和对象一一匹配
let moduleName = {
ref: 'setRef',
emo: 'setEmo',
relax: 'setRelax',
}
//js中
moduleName[ref] //setRef
// template中
{{ moduleName [emo] }} //setEmo
3、动态改变方法名
比如 item.a() 中a是动态改变的,那么:
item[a]()
4、将 03:55 改成 3分钟
1\去掉冒号及冒号后面的数值
2\去掉字符串开头的0
let elem = "03:55"
elem.duration.substring(0, elem.duration.indexOf(':')).replace(/\b(0+)/gi, "") // 3