JavaScript常用函数记录_数组篇

101 阅读2分钟
// 1.数组去重 [1,2,3,4,3,4] -> [1,2,3,4] 
const uniqueArray = arr => [...new Set(arr)]; 
const uniqueArray2 = arr => Array.from(new Set(arr)); 

// 2.数组去除无效值,如null,undefined或空字符串 ['aa','bbb',null,undefined] -> ['aa','bbb'] 
const cleanArray = arr => arr.filter(Boolean); 
// 检查是否所有的值为真 ['aa','bbb',null,undefined] -> false
const allTruthArray = arr =>  arr.every(Boolean); 
// 检查至少一个值是否为真 ['aa','bbb',null,undefined] -> true
const someTruthArray = arr => arr.some(Boolean);

// 3.数组求和 [1,5,2,4] -> 12 
const addArray = arr => arr.reduce((x,y)=>x+y); 

// 4.数组求最大值 [1,4,5,4,8] -> 8 
const maxArray = arr => Math.max(...arr); 
//  const maxArray = arr => arr.reduce((x,y)=>x>y?x:y); 

// 5.数组求最小值 [1,4,5,4,8] -> 1 
const maxArray = arr => Math.min(...arr); 
//  const minArray = arr => arr.reduce((x,y)=>x<y?x:y);

// 6.对象数组排序 [{aa:'aa',bb:'bb'},{aa:'ef',bb:'yh'},{aa:'cc',bb:'dd'}] 
const sortObjectArray = objarr => objarr.sort((a,b)=>a.aa.localeCompare(b.aa));

// 7.清空数组 arr = ['aa','bb','cc'] -> [] // 直接arr=[]会创建新数组
const emptyArray = arr => arr.length = 0;

// 8.常用数组方法 不改变原数组
// 数组使用指定连接符转换成字符串 [1,2,3] -> '1-2-3'
arr.join('-');
// 数组合并,返回新数组 arr=[1,2,3],arr.concat(4,[5,6]) -> [1,2,3,4,5,6]
arr.concat(array2,array3,arrayX);
// 数组中添加或删除元素
arr.splice(index,howmany,item1,itemX)
// 判断一个数组是否包含一个指定的值
arr.includes(searchElement);
// 复制数组的前面两个元素到后面两个元素上
arr.copyWithin(targetArray, start, end)

// 9.常用数组方法 改变原数组
// 数组末尾添加一或多个元素,返回新长度 ['a', 'b', 'c'] -> ['a', 'b', 'c','d']
arr.push('d');
// 删除数组的最后一个元素,返回删除的元素['a', 'b', 'c','d'] -> ['a', 'b', 'c']
arr.pop()
// 删除数组的第一个元素,返回删除的元素 ['a', 'b', 'c'] -> ['b', 'c']
arr.shift();
// 向数组开头添加元素,返回新长度 ['a', 'b', 'c'] -> ['e','b', 'c']
arr.unshift('e');
// 数组排序 ['e','b', 'c'] -> ['b', 'c','e']
arr.sort();
// 数组反转 ['a','b','c'] -> ['c','b','a'] 
arr.reverse();

// 10.数组属性  
// 返回数组对象原型创建的函数 [1,2,3,4] -> ƒ Array() { [native code] }
arr.constructor;
// 返回数组的长度  [1,2,3,4] -> 4
arr.length;
// 数组对象添加属性或方法 
Array.prototype.name = value;