
ES6
zenos_zhou
一只前端小菜鸡,偶尔总结下碰到的问题。
展开
-
前端排序,按照对象数组种某个元素进行排序
import _ from 'lodash'/** * 数据排序 * @param {*} origin 源数据 * @param {*} sortKey 排序的字段 * @param {*} type 排序方式 descending:倒序, ascending:正序 * Rules: 将【pre】和【next】为非零Boolean值【null、undefined、''】的项移到数据最后,不参与正常排序 */function sortByKey(origin, sortKey, typ.原创 2022-03-16 10:37:02 · 1319 阅读 · 2 评论 -
利用函数柯里化判断数据类型
// const curryingDataType = type => data => Object.prototype.toString.call(data) === typeconst curryingDataType = function(type) { return function(data) { return Object.prototype.toString.call(data) === type }}const isObject = c...原创 2021-11-30 09:08:49 · 257 阅读 · 0 评论 -
前端开发常用工具函数
/** * 判断数据类型*/const isObject = data => { return Object.prototype.toString.call(data) === `[object Object]`}const isArray = data => { return Object.prototype.toString.call(data) === `[object Array]`}const isString = data => {...原创 2021-11-12 10:24:06 · 192 阅读 · 0 评论 -
解决JavaScript中 toFixed方法的bug
/** * JavaScript 自带的 toFixed 方法有时候会出现计算不准确的问题 * 例如1.335toFixed(2) = 1.33, 但是实际应用中我们希望得到 1.335toFixed(2) = 1.34 * 重写Number原型对象上的toFixed方法 * 重写之后 1.335toFixed(2) = 1.34*/Number.prototype.toFixed = function(len) { const origin = this let ta...原创 2021-09-28 13:45:59 · 569 阅读 · 0 评论 -
JavaScript对象数组中合并某些属性相同的数据项项
/** * 如下图所示,grade为成绩表,成绩表中分别列出了小明和小红的语文、数学和英文的成绩 * 现在需要将小明和小红的成绩合并 * 每条记录包含5个字段,分别是【姓名、年龄、性别、科目、成绩】 * 将姓名、年龄和性别相同的数据合并*/const grades = [ { name: '小明', age: 15, sex: 'male', class: 'Chinese', grade: 80 }, { name: '小明', age: 15, sex: 'male',.原创 2021-08-23 09:43:54 · 4036 阅读 · 1 评论 -
前端开发中按照汉字首字母排序分组
在前端开发过程中,按照汉字首字母排序分组是很常见的操作,比如联系人列表引入第三方插件 npm i --save jian-pinyin原创 2021-06-03 16:20:13 · 4479 阅读 · 0 评论 -
常见的Javascript六种数组扁平化方法
/* 数组扁平化 所谓数组扁平化,也即是将嵌套数组([1, [2, , [3, [4, 5], [6, 7]]]]) 转换成一维数组 ([1, 2, 3, 4, 5, 6, 7])*/// 利用普通递归实现function flatten1(arr) { if (!(arr instanceof Array)) { return false } let newArr = [] for (let i = 0; i < arr.length; i++) { .原创 2021-03-22 10:37:19 · 182 阅读 · 0 评论 -
手写Javascript浅拷贝
const shallowClone = (target) => { if (typeof target === 'object' && target !== null) { const cloneTarget = Array.isArray(target) ? []: {}; for (let prop in target) { if (target.hasOwnProperty(prop)) { cloneTarget[prop.原创 2021-03-21 13:05:47 · 127 阅读 · 0 评论 -
JS快速排序算法
在Javascript中,排序算法是比较常用到的。//快速排序function quickSort(arr) { if (arr.length <= 1) { return arr } const middleIndex = Math.floor((arr.length -1) / 2) const middle = arr.splice(middleIndex, 1)[0] const left = [] const right = [] for (let原创 2021-03-03 17:11:38 · 909 阅读 · 1 评论