您的位置 首页 java

常用的JavaScript代码技巧 (二)布尔、数组

布尔

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  random Item = 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]  

文章来源:智云一二三科技

文章标题:常用的JavaScript代码技巧 (二)布尔、数组

文章地址:https://www.zhihuclub.com/197143.shtml

关于作者: 智云科技

热门文章

网站地图