ES6
星月I随心
这个作者很懒,什么都没留下…
展开
-
JS数组reduce()方法详解及高级技巧
reduce()方法可以搞定的东西,for循环,或者forEach方法有时候也可以搞定,那为啥要用reduce()?这个问题,之前我也想过,要说原因还真找不到,唯一能找到的是:通往成功的道路有很多,但是总有一条路是最捷径的,亦或许reduce()逼格更高...1、语法arr.reduce(callback,[initialValue])reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素.转载 2021-11-04 00:42:48 · 505 阅读 · 0 评论 -
Vue中子组件中传参数给父组件中回调函数时,如果这个回调函数本身需要父组件的参数信息时怎么写?
父组件调用子组件:<Child v-for="(item, index) in items" @evenFn="value => handlEdit(index, value)">其中index是父组件所要传的参数 value是子组件回传回来的参数子组件触发evenFn:handle() { const value = 'hello' this.$emit('handlEdit', value) //这里的value传回父组件?}...原创 2021-11-02 08:45:37 · 332 阅读 · 0 评论 -
js将对象以参数形式拼接在某个地址后
function splitQueryParams(params) { let tempParams = []; if (Object.keys(params).length <= 0) return tempParams; for (let key in params) { tempParams.push(`${key}=${params[key]}`); } return tempParams.join("&");}// 'name=关键字&a.转载 2021-10-22 15:22:44 · 547 阅读 · 0 评论 -
JS中forEach()方法的使用
一、概念forEach()方法按升序为数组中含有效值的每一项执行一次callback 函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上)。注意:forEach()的返回值为undefined forEach()对于空数组是不会执行回调函数的 没有办法中止或者跳出 forEach()循环,除了抛出一个异常二、语法arr.forEach(callback(currentValue, index, arr), thisArg)参数说明:callback:必须。为数组转载 2021-10-21 19:06:44 · 1158 阅读 · 0 评论 -
JS中map()函数的使用
一、概念map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。注意:map()不会对空数组进行检测 map()不会改变原始数组二、语法array.map(function(currentValue, index, arr), thisIndex)参数说明:function(currentValue, index, arr):必须。为一个函数,数组中的每个元素都会执行这个函数。其中函数参数:currentVal转载 2021-10-21 19:05:22 · 514 阅读 · 0 评论 -
1,2,3,4,5,6....10,11,12 小于10的前面给我加个0凑成2位的和后面一致好看
项目经理:1,2,3,4,5,6....10,11,12 小于10的前面给我加个0凑成2位的和后面一致好看!!!我:。。。其实我们用slice函数可以巧妙解决这个问题slice(start,end);start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。end :可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束.转载 2021-05-18 10:23:44 · 71 阅读 · 0 评论 -
JS实现延时
setTimeout(function (){ window.location.reload();}, 3000);setTimeout(()=>{ console.log(this.id) },100)原创 2021-06-04 10:16:26 · 158 阅读 · 0 评论 -
ES6将两个数组合并成一个对象数组
需求有这么两个数组let metrodates = [ "2008-01", "2008-02", "2008-03",..ect];let figures = [ 0, 0.555, 0.293,..ect]想要这样的结果 let result = [ {data: 0, date: "2008-01"}, {data: 0.555, date: "2008-02"}, {data: 0.293, date: "2008-03"},..ect转载 2021-05-26 15:32:23 · 1873 阅读 · 0 评论 -
js实现树级递归,通过js生成tree树形菜单(递归算法)
/** * 数据转换为树形(递归),示例:toTreeByRecursion(source, 'id', 'parentId', null, 'children') * @param {Array} source 数据 * @param {String} idField 标识字段名称 * @param {String} parentIdField 父标识字段名称 * @param {Any} parentIdNoneValue 父级标识空值 * @param {String} children.转载 2021-05-14 10:36:03 · 1514 阅读 · 0 评论 -
线性结构与树形结构相互转换(ES6实现)
前言 当树形结构的层级越来越深时,操作某一节点会变得越来越费劲,维护成本不断增加。所以线性结构与树形的相互转换变得异常重要! 首先,我们约定树形结构如下:node = { id: number, // 数值 parentId: number, // 数值 name: string, children: [] || null, // 用数组的方式保存子节点,适合更多业务场景 } 线性结构:list = [ { id: number, pa.转载 2021-05-13 11:27:31 · 874 阅读 · 0 评论 -
js使用filter递归过滤树形结构数组
今天遇到了这么一个问题,一个管理系统的前端使用vue,通过路由控制用户权限。由后端返回权限编码列表,前端菜单列表需要对这些权限编码进行过滤。菜单是树形结构,如果父级菜单被过滤,则该父级下所有子级菜单也被过滤。由于是树形结构,肯定要用到递归,大致代码如下:// 菜单列表const menuList = [{ name: '系统管理', code: 'system_manage', children: [{ name: '用户管理', cod.转载 2021-03-23 09:00:18 · 2315 阅读 · 0 评论 -
js提取对象数组中的某一个属性组成新数组
例:arrold = [ {name: "name1", age: "1"}, {name: "name2", age: "2"}, {name: "name3", age: "3"}, {name: "name4", age: "4"}, {name: "name5", age: "5"}, {name: "name6", age: "6"}]arrnew = ["name1","name2","name3","name4","name5","name6"]方法一转载 2021-03-19 09:12:44 · 34025 阅读 · 5 评论