js代码技巧
<script> // ----------------------------数组去重------------------------------------------- // 双层for循环去重 function unique(arr){ for (let i = 0; i < arr.length; i++) { for (let j = i+1; j < arr.length; j++) { if(arr[i] === arr[j]){ arr.splice(j,1); j--; } } } return arr; } let res = unique([1,3,1,8,3,0,5,7,6,2,5]) console.log(res) // [1, 3, 8, 0, 5, 7, 6, 2] // indexOf去重 function unique1(arr){ let newArr = [] for (let i = 0; i < arr.length; i++) { const ele = arr[i]; if(newArr.indexOf(ele) === -1){ newArr.push(ele) } } return newArr } let res1 = unique1([1,3,1,8,3,0,5,7,6,2,5]) console.log(res1) // [1, 3, 8, 0, 5, 7, 6, 2] // 利用Array.from与set去重 function unique2(arr){ return Array.from(new Set(arr)) } let res2 = unique2([1,3,1,8,3,0,5,7,6,2,5]) console.log(res2) // 利用展开符...与set去重 function unique3(arr){ return [...new Set(arr)] } let res3 = unique3([1,3,1,8,3,0,5,7,6,2,5]) console.log(res3) // [1, 3, 8, 0, 5, 7, 6, 2] // ------------------------------数组转对象----------------------------------------- let obj = {} let arr = [‘1‘,‘2‘,‘3‘] for (const key in arr) { obj[key] = arr[key] } console.log(obj) // {0: "1", 1: "2", 2: "3"} console.log({...[‘1‘,‘2‘,‘3‘]}) // {0: "1", 1: "2", 2: "3"} // ------------------------------转数字类型----------------------------------------- const age = ‘30‘ const ageConcert = parseInt(age) // Number(age) console.log(ageConcert) // 30 console.log(typeof ageConcert) // number const ageConcert1 = +age console.log(ageConcert1) // 30 console.log(typeof ageConcert) // number // ------------------------------js代码性能追踪-------------------------------------- let start = performance.now() let sum = 0 for (let i = 0; i < 100000; i++) { sum += 1 } let end = performance.now() console.log(start) // 22.175000049173832 console.log(end) // 26.465000002644956 // ------------------------------数组扁平化-------------------------------------- let arr1 = [1,[2,[3,4]]] function flatten(arr){ return arr.reduce(function(perv,next){ return [perv].concat(Array.isArray(next) ? flatten(next) : next); }) } console.log(flatten(arr1)) // [1, 2, 3, 4] console.log([1,[2,3,[4,[5]]]].flat(3)) // [1, 2, 3, 4, 5] // ------------------------------浮点数转为整数-------------------------------------- console.log(Math.floor(5.8)) // 5 floor() 方法返回小于等于x的最大整数。向下取整。 console.log(Math.ceil(5.4)) // 6 ceil() 方法可对一个数进行上舍入。向上取整。 console.log(Math.round(5.4)) // 5 round() 方法可把一个数字舍入为最接近的整数。四舍五入。 console.log(~~6.95) // 6 console.log(6.95 >> 0) // 6 console.log(6.95 << 0) // 6 console.log(6.95 | 0) // 6 // >>> 不可对负数取整 console.log(6.95 >>> 0) // 6 // 数组截断 let array = [0,1,2,3,4,5] array.length = 3 console.log(array) // [0, 1, 2] </script>
原文:https://www.cnblogs.com/wenshaochang123/p/14830782.html