我们日常开发中经常会碰到各种各样的需求,但很多需求都是重复的,因此我就把平时开发中遇到的一些常见方法做了个总结和归纳。
1、金额的格式化
比如2.00,1,222,2.00像这样格式的数据在很多电商或者后台数据显示上见到,然而这些数据后台往往只是给我们前端返回2或者12222等等,因此我们前端就需要对数据进行处理
/*
- 格式化数字格式
- @param s为要格式化的number
- @param n为要保留几位小数点
- example: formatNum(2,2) 返回结果为"2.00"
- */
const formatNum = (s, n) => {
n = n > 0 && n <= 20 ? n : 2
s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + ''
var l = s.split('.')[0].split('').reverse(), r = s.split('.')[1]
t = ''
for (i = 0; i < l.length; i++) {
t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? ',' : '')
}
return t.split('').reverse().join('') + '.' + r
}
2、检查某个对象是否为空
这个常见于我们进行判断的时候啦
/*
- 检查一个对象是否为空
- @param object为要判断的对象
- example:
- let obj = {}
- isEmptyObj(obj) 返回结果为true,否则false
- */
const isEmptyObj = object => {
if (!!Object.getOwnPropertySymbols(object).length) {
return false
}
for (const key in object) {
if (object.hasOwnProperty(key)) {
return false
}
}
return true
}
3、数组去重
/*
- 检查一个对象是否为空
- @param arr为要去重的数组
- example:
- let arr = [1,1,2,3,4]
- removeDuplicates(arr) 返回结果为[1,2,3,4]
- */
1.较繁琐方法
const removeDuplicates = arr =>{
const uniqueVals = []
arr.forEach((value,index) => {
if(uniqueVals.indexOf(value) === -1){
uniqueVals.push(value)
}
})
return uniqueVals
}
2.简单方法1
const removeDuplicates = arr => {
return arr.filter((item,pos) => arr.indexOf(item) === pos)
}
简单方法2
const removeDuplicates = arr => {
return [...new Set(arr)]
}
数组对象去重
const data = [
{
name: "Kris",
age: "24"
},
{
name: "Andy",
age: "25"
},
{
name: "Kitty",
age: "25"
},
{
name: "Andy",
age: "25"
},
{
name: "Kitty",
age: "25"
},
{
name: "Andy",
age: "25"
},
{
name: "Kitty",
age: "25"
}
]
const dataReducer = (prev, cur, idx) => {
let obj = {}
const { name } = cur
obj[name] = cur
return {
...prev,
...obj
}
}
const reducedData = data.reduce(dataReducer, {});
let newData = Object.values(reducedData);
console.log(newData)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。