codingmeup

Results 172 comments of codingmeup

[模拟实现一个深拷贝,并考虑对象相互引用以及 Symbol 拷贝的情况](https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/148)

1. 最复杂的业务场景和技术场景 工单地图 marker聚合,路由改造,厂测动态可配,RN升级改造

2、 工程治理 那么什么是前端资源治理呢?笔者对其的定义是: 将前端相关的页面、js/css/图片/字体、接口、配置、监控点等的依赖关系进行收集、存储和管理,并将割裂的组件系统、配置系统、监控系统、业务系统等进行重构和整合,最终形成以页面管理为基础的统一的有序的平台,所有关联信息都能够被查询和检索,最终实现整体协作效率的提升。 此处使用“治理”而不是“管理”的原因,“治理”一词更强调合作整改的过程。在很多互联网企业,通常已经有一些独立的组件系统、配置系统、监控系统等,但是这些系统很多都是独立的碎片化的系统,彼此都是割裂的,割裂意味着缺乏协同,进而影响研发效率。因此,前端资源治理的一个关键词是“整合”,整合已有的系统。 第二个关键词是“关联关系管理”,前端相关的页面、组件、js/css/图片/字体、接口、配置、监控点及负责人等,他们是存在关联关系的,比如页面是谁负责的、谁修改的、引用了哪些组件、图片、字体、接口、在什么地方配置数据、监控点都有哪些等,我们需要把这些关联关系在管理端记录下来,并提供检索和查询。

### JS + ES6 快速排序 原理: 快速排序也是分治法思想的一种实现,他的思路是使数组中的每个元素与基准值(Pivot,通常是数组的首个值,A[0])比较,数组中比基准值小的放在基准值的左边,形成左部;大的放在右边,形成右部;接下来将左部和右部分别递归地执行上面的过程:选基准值,小的放在左边,大的放在右边。。。直到排序结束。 步骤: - 找基准值,设Pivot = a[0] - 分区(Partition):比基准值小的放左边,大的放右边,基准值(Pivot)放左部与右部的之间。 - 进行左部(a[0] - a[pivot-1])的递归,以及右部(a[pivot+1] - a[n-1])的递归,重复上述步骤。 ![image](http://pic002.cnblogs.com/images/2012/393797/2012121718140277.gif) ![image](http://pic002.cnblogs.com/images/2012/393797/2012121719395858.gif) ```js let qsort = (list) => { if(...

### DOM相关 #### UL插3个LI - 方式1 ```js var container = document.getElementById('list'); for (var i = 0; i < 3; i++) { var item = document.createElement('li'); item.innerText = i + 1;...

### DOM 遍历 DFS BFS #### childNodes和children这两个时不太一样的,childNodes会将文本节点 空格 换行符也打印出来,这时候你就会看到很多undefined .undefined这样的东西,所以尽量使用children,然后用Array.from将其从HTMLCollection变为一个真正的数组。 #### array.from()...forEach 伪数组转数组 ```js let printInfo = (node) => { console.log(node.tagName, '.' + node.className) ``` #### 深度优先遍历以深度为主,即遍历完某一个节点之后,才会继续往下遍历兄弟节点,这个只需要循环遍历就行了。 ```js function dfs...

### JS 数组对象去重 最优的数组去重算法是采用Map数据结构实现的算法 https://juejin.im/post/5b0284ac51882542ad774c45#heading-4 ```js Array.prototype.unique = function () { var res = []; var json = {}; for (var i = 0; i < this.length; i++) { //...

### 生产UUID ```js let S4 = () => { return (((1+Math.random())*0x10000)|0).toString(16).substring(1); } if(res.items && res.items.length > 0){ res.items.map( (item)=>{ item.uuid = S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4() } ) } ``` ### UUID生成器 使用crypto API生成符合RFC4122版本4的UUID。...

### 编码下载导出文件 excel ``` 'use strict' var Browser = require('nd-browser') module.exports = { download: function (options) { var data = options.data var type = options.type var name = options.name if...

## 将对象的变量名由连字符式转为驼峰式,支持对象的深度遍历转换 前端时间,在共享平台开发者门户做前端开发时,有个需求:服务端要基于新框架进行接口改造,原来旧接口返回的JSON数据使用的是驼峰式命名法,格式如下: ``` buildType : 2 chineseName : "部署测试" createTime : 1472489455000 creator : 339691 demandAnalysisUrl : "应用描述33" desc : "应用描述22" designAnalysisUrl : "应用描述44" members : [ { yourName...