一、布尔
1. 基础操作
const a = true && false; // false const b = true || false; // true const c = !0; // true
2. 确定数据类型
不判断的类型: undefined, null, string, number, boolean, array, object, symbol, date, regexp, function, asyncfunction, arguments, set, map, weakset, weakmap
function DataType(tgt, type) { const dataType = Object.prototype.toString.call(tgt).replace(/[object (w+)]/, "$1").toLowerCase(); return type ? dataType === type : dataType; } DataType("toms"); // "string" DataType(20220308); // "number" DataType(true); // "boolean" DataType([], "array"); // true DataType({}, "array"); // false
3.判断空数组
const arr = []; const flag = Array.isArray(arr) && !arr.length; // flag => true
4.满足条件执行函数
const flagA = true; // 条件 A const flagB = false; // 条件 B (flagA || flagB) && Func(); // 当A或B满足时执行 (flagA || !flagB) && Func(); // 当A满足或B不满足时执行 flagA && flagB && Func(); // 当A和B都满足时执行 flagA && !flagB && Func(); // 当A满足而B不满足时执行
5. 非真执行
const flag = false; // undefined、null、""、0、false、NaN !flag && Func();
6. 当数组不为空时执行
const arr = [0, 1, 2]; arr.length && Func();
7. 当对象不为空时执行
const obj = { a: 0, b: 1, c: 2 }; Object.keys(obj).length && Func();
二、数组
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 => [ 5, 2, 3, 1, 4, 0 ]
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. 过滤数组
const arr = [undefined, null, "", 0, false, NaN, 1, 2].filter(Boolean); // arr => [1, 2]
9. 在数组头插入
let arr = [1, 2]; arr.unshift(0); arr = [0].concat(arr); arr = [0, ...arr]; // arr => [0, 1, 2]
10. 在数组末尾插入
let arr = [0, 1]; arr.push(2); arr.concat(2); arr[arr.length] = 2; arr = [...arr, 2]; // arr => [0, 1, 2]
11. 计算数组成员数
const arr = [0, 1, 1, 2, 2, 2]; const count = arr.reduce((t, v) => { t[v] = t[v] ? ++t[v] : 1; return t; }, {}); // count => { 0: 1, 1: 2, 2: 3 }
12. 分解嵌套数组成员
const arr = [0, 1, [2, 3, [4, 5]]]; const [a, b, [c, d, [e, f]]] = arr; // a b c d e f => 0 1 2 3 4 5
13. 分解数组成员别名
const arr = [0, 1, 2]; const { 0: a, 1: b, 2: c } = arr; // a b c => 0 1 2
14. 分解数组成员默认值
const arr = [0, 1, 2]; const [a, b, c = 3, d = 4] = arr; // a b c d => 0 1 2 4
15. 获取随机数组成员
const arr = [0, 1, 2, 3, 4, 5]; const randomItem = arr[Math.floor(Math.random() * arr.length)]; // randomItem => 1
16. 创建指定长度的数组
const arr = [...new Array(3).keys()]; // arr => [0, 1, 2]
17. 创建指定长度和相等值的数组
const arr = new Array(3).fill(0); // arr => [0, 0, 0]标签:arr,const,数组,JavaScript,&&,false,true,布尔 From: https://www.cnblogs.com/juminxuan/p/16893240.html
本文引用 https://www.jsdaima.com/