JavaScript工具函式--陣列相關
阿新 • • 發佈:2018-12-11
/** * 陣列去重 * @param arr * @returns {*[]} */ function deDuplication(arr) { return [...new Set([...arr])]; } /** * 陣列平鋪 * @param arr * @returns {Array} */ function flattenArray(arr) { return arr.reduce((prev, curr) => { if (!Array.isArray(curr)) { // 當前元素不是陣列 return [...prev, curr]; } else { // 當前元素是陣列 return [...prev, ...flattenArray(curr)]; } }, []); } /** * 陣列平鋪2 * @param arr */ function flattenArray1(arr) { const res = []; function flat(arr) { for (let item of arr) { if (!Array.isArray(item)) { res.push(item); } else { res.concat(flat(item)); } } } flat(arr); return res; } /** * 實現陣列亂序 * @param array */ function shufferArray(array) { return array.sort((item1, item2) => { const sign = Math.random() > 0.5 ? 1 : -1; return (item1 - item2) * sign; }) }