数组拍平
let flatten=function(arr){let res=[]for(let i=0;i<arr.length;i++){if(Array.isArray(arr[i])){res=res.concat(flatten(arr[i]))}else{res.push(arr[i])}}return res}console.log(flatten([1,[2,[3,[4,5]]]]));
环形链表找入口节点
两个无须数组合并为有序数组
找出数组中重复出现的元素
数组去重(4种)
function unique1(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}function unique2(arr) {let rs = arr.reduce((accumulator, current) => {return accumulator.includes(current) ? accumulator : accumulator.concat(current);}, []);return rs}let arr = [1, 2, 3, 34, 2, 2, 3, 3, 4]// let rs1 = unique1(arr)let rs2 = unique2(arr)console.log(rs2);// let rs2 = arr.filter((item, index, arr) => arr.indexOf(item) === index)// let rs3 = [...new Set(arr)];
去除字符串首尾空格
// 去除字符串首尾空格function myTrim1(str){return str.replace(/^\s+|\s+$/g,'')}function myTrim2(str){let head=0let foot=str.lengthfor(let i=0;i<str.length;i++){if(str[i]===' ') head++else break}for(let j=str.length-1;j>0;j--){if(str[j]==' ') foot--else break}return str.substr(head,foot-head)}str=" text "console.log(myTrim2(str));
