sxx的技术专栏 Nodejs and Javascript Coder

数组技巧

2020-03-18
blockxia

阅读:


1. 克隆数组


const _arr = [0, 1, 2];
const arr = [..._arr];
// arr => [0, 1, 2]


2. 合并数组


const arr1 = [0, 1, 2];
const arr2 = [3, 4, 5];
const arr = [...arr1, ...arr2];
// arr => [0, 1, 2, 3, 4, 5];


3. 去重数组


const arr = [...new Set([0, 1, 1, null, null])];
// arr => [0, 1, null]

4. 混淆数组


const arr = [0, 1, 2, 3, 4, 5].slice().sort(() => Math.random() - .5);
// arr => [3, 4, 0, 5, 1, 2]


5. 清空数组


const arr = [0, 1, 2];
arr.length = 0;
// arr => []


6. 截断数组


const arr = [0, 1, 2];
arr.length = 2;
// arr => [0, 1]


7. 交换赋值


let a = 0;
let b = 1;
[a, b] = [b, a];
// a b => 1 0


8. 过滤空值 (空值:undefined、null、”“、0、false、NaN)


const arr = [undefined, null, "", 0, false, NaN, 1, 2].filter(Boolean);
// arr => [1, 2]

9. 异步累计


async function Func(deps) {
    return deps.reduce(async(t, v) => {
        const dep = await t;
        const version = await Todo(v);
        dep[v] = version;
        return dep;
    }, Promise.resolve({}));
}
const result = await Func(); // 需在async包围下使用


10. 数字首部插入成员


let arr = [1, 2]; // 以下方法任选一种
arr.unshift(0);
arr = [0].concat(arr);
arr = [0, ...arr];
// arr => [0, 1, 2]


11. 数字尾部插入成员


let arr = [0, 1]; // 以下方法任选一种
arr.push(2);
arr.concat(2);
arr[arr.length] = 2;
arr = [...arr, 2];
// arr => [0, 1, 2]



Similar Posts

上一篇 路由传值方法

下一篇 对象技巧

Comments