本文將分享幾個在項目中經常使用的數組方法~git
原文地址: https://github.com/webfansplz...github
不按期有乾貨更新哦,歡迎watch,star!web
const sortAry = [1, 5, 4, 3, 2, 6, 7]; 1.按數組元素大小從小到大進行排序 sortAry.sort((a, b) => a - b); //[1, 2, 3, 4, 5, 6, 7] 2.按數組元素大小從大到小進行排序 sortAry.sort((a, b) => b - a); //[7, 6, 5, 4, 3, 2, 1] const sortId = [ { id: 3, name: "c" }, { id: 1, name: "a" }, { id: 2, name: "b" } ]; 3. 按數組元素的id從小到大進行排序 sortId.sort((a, b) => a.id - b.id); //[{ id: 1, name: "a"},{id: 2, name: "b"},{id: 3, name: "c"}] 4.按數組元素的id從大到小進行排序 sortId.sort((a, b) => b.id - a.id); //[{ id: 3, name: "c" },{ id: 2, name: "b" },{ id: 1, name: "a" }] };
const uniqAry = ary => Array.from(new Set(ary)); const uniqAry2 = ary => ary.filter((v, k) => ary.indexOf(v) == k); const ary = [1, 2, 1, 2, 3, 4, 3]; uniqAry(ary) //[1,2,3,4] uniqAry2(ary) //[1,2,3,4]
const copyAry = [1, 2, 3, 4]; const ary = [].slice.apply(copyAry); ary.push(5); console.log(ary); //[1, 2, 3, 4, 5] console.log(copyAry); //[1, 2, 3, 4] const ary2 = JSON.parse(JSON.stringify(copyAry)); ary2.push(5); console.log(ary2); //[1, 2, 3, 4, 5] console.log(copyAry); //[1, 2, 3, 4]
const ary = [1, 2, 3, 4, 5, 6, 7]; const splitAry = (ary, size) => { let i = Math.ceil(ary.length / size), count = 0, box = []; while (count < i) { let s = count * size; box.push(ary.slice(s, s + size)); count++; } return box; }; console.log(splitAry(ary, 3)); //[[1,2,3],[4,5,6],[7]] console.log(splitAry(ary,2)); // [[1,2],[3,4],[5,6],[7]]
//二維數組扁平化 const ary = [[1, 2], [3, 4], [5, 6]]; const flatten = ary => ary.reduce((a, b) => [...a, ...b]); console.log(flatten(ary)); //[1, 2, 3, 4, 5, 6] //多維數組扁平化 const ary2 = [[1, [2, 3]], [4, [5, [6, 7]]]]; const flattenS = ary => ary.reduce((a, b) => a.concat(Array.isArray(b) ? flattenS(b) : b), []); console.log(flattenS(ary2)); //[1, 2, 3, 4, 5, 6, 7]