前端总结
# es6 列表去重
# 方法一
if (shareMaps[n.eaid].indexOf(`${n.user}`) < 0) {
shareMaps[n.eaid].push(`${n.user}`)
}
# 方法二
shareMaps[n.eaid].push(`${n.user}`)
shareMaps[n.eaid] = Array.from(new Set(shareMaps[n.eaid]))
# 列表内的值相加
blanceArr.reduce((a, b) => a + b)
# Vue 中对渲染的数据进行处理
<template v-else>{{ cleanRow(scope.row.balance) }}</template>
cleanRow (scope) {
if (parseInt(scope).toLocaleString() === 'NaN') {
return ''
} else {
return parseInt(scope).toLocaleString()
}
},
# 对 Array 数据的处理,变成列表的形式
this.fundMap = res.reduce(function (map, obj) {
map[obj.amac_id] = obj
return map
}, {})
# 解构赋值
... 操作,可以把对象拆开
{...{}} or {...[]}
# 删除字典中的元素
delete dict[key]
# 删除列表中的元素
方法一:delete Arry[index] # 会删除元素,但是元素的位置还会保存,列表的长度不会变化
方法二:
for (let i = 0; i < otherColumns.length; i++) {
if (this.otherAddColumns.indexOf(otherColumns[i]) < 0) {
this.otherAddColumns.push(otherColumns[i])
} else {
otherColumns.splice(i, 1)
i--
}
}
# 使用 splice 删除,可以删除位置,会更改列表的长度,如果是有连续两个相同的,第二个在使用 for 循环的时候会直接隔过去,所以最后要使用 i--
# js 数组 map 方法
map 映射,基本用法跟 forEach 方法类似
Array.map(item => {}) # item 就是列表中的每个元素
# Object.keys()
方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致,如果是字典,返回的值是字典中所有的key,如果对象是数组,则返回所有的 index,
Object.keys(Array)
Object.keys(dict) # 获取字典中所有的key
Object.values(dict) # 获取字典中所有的value
# js 中判断一个值是不是在列表中
Object.keys(Array) >= 0
# js 判断一个值是不是在 字典中
value in this.map
或者 myObj.hasOwnProperty('key')
前端框架总结
# element
# 取消表格悬浮高亮
tr {pointer-events: none;}
导出csv文件
Download () {
const datas = [...this.data]
datas.map(item => {
delete item['other_add_columns']
delete item['custodian_update_freq']
})
# exportData 是一个需要导出的数据,如果数据中有不需要导出的数据,需要把数据删除掉
const exportData = JSON.parse(JSON.stringify(this.data))
const boolMap = { true: 'yes', false: 'No' }
exportData.map(d => {
d.is_fund_alive = boolMap[d.is_fund_alive]
})
const header = {
id: 'id',
amac_id: 'AMACID',
fund_name: 'FundName',
abbr_cn: 'CAbbr',
}
exportData.unshift(header) # 配置表格头
# header 传入的是一个列表,Object.keys()获取字典中的所有key值,生成一个列表
# skipHeader 是否使用原来的抬头
const ws = XLSX.utils.json_to_sheet(exportData, {
header: Object.keys(header), skipHeader: true
})
const wb = XLSX.utils.book_new()
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
XLSX.writeFile(wb, 'Fund.xlsx', { type: 'base64', bookType: 'xlsx' })
},