常用快捷方法 -- method
1、求数组最大/小值
const arr=[0,1,2,3,4] const prim = Math.min/max(...arr)
// min:0 max:4
2、数组快速去重
let arr = [3, 5, 2, 2, 5, 5]; let unique = [...new Set(arr)]; // [3, 5, 2]
3、数组内容判断
some:数组中有值与条件相符就返回true, every:数组中所有值与条件相符返回true const arr = [0,10,12,13,14,15] arr.some(item=>item>10) // true arr.every(item=>item>10) // false
4、交换变量的值
let x = 1; let y = 2; [x, y] = [y, x];//x=2 y=1
5、提取Json数据
let jsonData = { id: 42, status: "OK", data: [867, 5309] }; let { id, status, data: number } = jsonData;
console.log(id, status, number);// 42, "OK", [867, 5309]
6、math对象扩展
(1) Math.trunc()
Math.trunc方法用于去除一个数的小数部分,返回整数部分。对于空值和无法截取整数的值,返回NaN。
Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4
(2) Math.sign()
Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换数值。
参数为正数,返回+1; 参数为负数,返回-1; 参数为0,返回0; 参数为-0,返回-0; 其他值,返回NaN。 Math.sign(-5) // -1 Math.sign(5) // +1 Math.sign(0) // +0 Math.sign(-0) // -0 Math.sign(NaN) // NaN
(3) Math.cbrt()
Math.cbrt方法用于计算一个数的立方根。对于非数值,Math.cbrt方法内部也是先使用Number方法将其转为数值。
Math.cbrt(-1) // -1 Math.cbrt(0) // 0 Math.cbrt(1) // 1 Math.cbrt(2) // 1.2599210498948734 Math.cbrt('8') // 2 Math.cbrt('hello') // NaN
7、数组排序
/** *数组排序 -- 数组中空值永远在最后 *arr 原数组 column 排序的对象属性名 */ function tableSort(arr,column){ let newArr=[] //数组中需要排序的数据 const sortArr = deepClone(arr).filter(item => !isNull(item[column.prop])) //数组中不需要排序的数据 const noSortArr = deepClone(arr).filter(item => isNull(item[column.prop])) if (column.order === 'ascending'){ newArr=[...sortArr.sort((a,b)=>(a[column.prop]<b[column.prop])?-1:((a[column.prop]>b[column.prop])?1:0)),...noSortArr] }else { newArr=[...sortArr.sort((a,b)=>(a[column.prop]>b[column.prop])?-1:((a[column.prop]<b[column.prop])?1:0)),...noSortArr] } return newArr }