1 实现多维数组去重排序:
var arr = [8,5,4,7,3,2,[2,9,5,3,0,4,[4,3,1,9,0,5]]], a = [], item; function s(arr){ for(item of arr){ if(Array.isArray(item)){ s(item); } else { a.push(item); } } } s(arr); a = [...new Set(a)].sort((a, b) => { return a-b; }); console.log(a);
2 实现数组排序:
var arr = [7,4,9,5,3,0,1], len = arr.length, i, k; for(i = 0; i < len - 1; i++){ for(k = 1; k < len - i; k++){ if(arr[i] > arr[i+k]){ t = arr[i]; arr[i] = arr[i+k]; arr[i+k] = t; } } } console.log(arr);
3 实现数组去重:
var arr = [7,4,9,5,3,0,1,5,3,7,9,5,0,1,2,3,5], a = []; arr.forEach(item => { if(!a.includes(item)){ a.push(item); } }); console.log(a);
4 实现对象的深拷贝
var obj = { a: 1, b: { c: 3 } }; function deepClone(obj) { var objClone = Array.isArray(obj) ? [] : {}; if (obj && typeof obj === "object") { for (key in obj) { // for in 会循环出原型上的属性 if (obj.hasOwnProperty(key)) { if (obj[key] && typeof obj[key] === "object") { objClone[key] = deepClone(obj[key]); } else { objClone[key] = obj[key]; } } } } return objClone; } console.log(deepClone(obj)); // { // a: 1, // b: { // c: 3 // } // } console.log(deepClone(obj) === obj); // false
5 判断字符串是否是回文
var str = '12321'; Array.from(str).reverse().join('') === str
var s = '23432'; function isRstr(){ for(let i = 0 ; i < s.length/2; i++) { if (s[i] !== s[s.length - i - 1]) { return false; } } return true; } console.log(isRstr(s));