1

我们日常开发中经常会碰到各种各样的需求,但很多需求都是重复的,因此我就把平时开发中遇到的一些常见方法做了个总结和归纳。
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)

码码码农
11 声望0 粉丝

一枚努力向上的前端开发者