来了官人~~
前言:
工具函数库有很多,各种库也就不必多说了,项目需求中所需要的工具函数基本上也都能从函数库里边找的到,至于为什么我还要自己来写一下工具函数呢,深思熟虑之后总结了以下两个原因:
1,找存在感+实现价值,我总得让我写的东西里边有我自己写的代码吧!【滑稽】
2,工具库工具太多,我难以分辨哪个才是我最需要的(简单来说就是我不会用)【猥琐】
对象数组去重:
对象数组去重,也是最常用的,一般很少有简单的数组去重,这里使用了map类型,不得不说这玩意挺好用
/**
* @descriptiong: 根据数组中某个对象的值去重
* @param {array} arr 去重数组
* @param {string} key 去重对象键名
* @returns {arrary}
*/
function unique(arr,key){
const map = new Map();
return arr.filter(item => {
return !map.has(item[key]) && map.set(item[key],'anything');
});
}
普通数组去重
用indexof ? 可以,但是看着不够nb
/** * @description: es6数组去重复
* returns {array}
*/function es6Unique(arr) { return Array.from(new Set(arr));}
为啥?www.runoob.com/jsref/jsref… 自己去瞅瞅吧
主要还是from(),这玩意不允许相同的元素搞基
不明白没用过就控制台试一下,就知道他的作用了
let obj = new Set(['a','b','c','c'])
let ovjArr = Array.from(obj)
输入框过滤filter
前端检索常用,各种原因,有时候后端并不会提供给你各种接口,对于数据量比较大的表格内容还是需要检索功能的,这里边就用到了本地模糊查询
1.查询指定键名(也就是指定列:比如说我只查询用户名这一列):indexOf方式
/**
* @description 模糊过滤对象数组
* @param {string} filterValue 模糊查询的内容
* @returns {array}
*/
function filter(filterValue,arr){
const res = arr.filter(item => return item[key].toUpperCase().indexOf(value.toUpperCase()) ! == -1
return res
}
查询多列的内容咋办?em~自己想
2. 匹配所有模糊查询,这个感觉还是挺香的
/**
* @description 模糊过滤对象数组
* @param {string} value 模糊查询的内容
* @returns {array}
*/
function filter(value,arr){
const res = arr.filter(item =>{
return Object.keys(item).some(key => {
return String(item[key]).toLowerCase().indexOf(value) > -1
}
})
return res
}
下集预告
对象数组根据指定属性值排序、复杂数组排序、URL中解析参数、用户鉴权
/**
* @description 你以为这是排序吗,就先分享这么多吧,下次分享各种常用的排序,拜拜
* @param {string}
* @returns {array}
*/
总结一下吧:
本次分享就两个常用的方法 常用环境下的去重和过滤,有好方法也希望大家分享出来互相学习一下(其实我就想白嫖,你让不让吧)
错别字?别赖我,赖我输入法,