常用快捷方法 -- 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
}

 

posted @ 2021-11-11 14:13  携手度余生  阅读(58)  评论(0编辑  收藏  举报