![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
进阶中的全栈工程师
这个作者很懒,什么都没留下…
展开
-
slice()、substr() 和 substring() 的区别
slice 和 substring的参数分别为 (起始位置的索引, 结束位置的索引) substr 的参数为(起始位置的索引,要截取的长度)参数如果有负数时 substring 直接为0 substr 第二个参数为0时返回空字符串substring 可以倒着截取(默认为两个参数中较小一个作为起始位置,较大的参数作为结束位置)...原创 2021-03-28 17:02:14 · 78 阅读 · 0 评论 -
重构 forEach、map、和 reduce 方法
forEach 和 map 的区别?map 会返回一个新数组,forEach 不会返回新数组map 回调函数中使用 return 可以将每个元素返回给新数组中对应的位置重构 forEachvar arr = [1, 2, 3, 4, 5]function array_forEach(arr, fn){ for(var i = 0;i < arr.length;i++){ if(i in arr) fn(arr[i], i, arr) }}array_forEach(arr, f原创 2021-03-28 16:36:54 · 142 阅读 · 0 评论 -
数组去重
1. for 循环(修改当前数组)var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2]for(var i = 0;i < arr.length;i++){ for(var j = i + 1;j < arr.length;j++){ if(arr[i] === arr[j]){ arr.splice(j, 1) j-- } }}console.log(arr)2. for循环(不改变原数组)使用 continuevar原创 2021-03-28 15:57:46 · 41 阅读 · 0 评论 -
对象深查找
对象深查找var obj = { a1: 1, b1: 2, c1: 3, d1: { c2: 6, e2: { a4: 7, } }}function fn(obj, value) { for(var key in obj){ if(obj[key] === value) return key if(obj[key] && typeof obj[key] === 'object'){ var res = fn(obj[key], value原创 2021-03-28 14:29:19 · 146 阅读 · 0 评论 -
对象深复制
var obj = { a1: 1, b1: 2, c1: 3, d1: { c2: 6, e2: { a4: 7, } }}function fn(source, target) { if(target === undefined) target = {} for(var key in source){ if(source[key] && typeof source[key] === 'object'){ target[key] = {}原创 2021-03-28 15:10:41 · 52 阅读 · 0 评论 -
数组排序
冒泡排序var arr = [1, 23, 5, 99, 8, 100, 78, 45, 11]for(var i = 0;i < arr.length;i++){ for(var j = 0;j < arr.length - 1 -i;j++){ if(arr[j] > arr[j + 1]){ var temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } }}console.log(arr)原创 2021-03-28 15:35:06 · 65 阅读 · 0 评论