// 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;