一、项目中对数组的操作
1.数组去重通过Set数组去重
let arr = [4, 1, 3, 3, 2, '2']; let uniqueArr = [...new Set(arr)]; console.log(uniqueArr); // [4, 1, 3, 2, "2"]
2.数组排序
方法一、sort方法排序
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 fruits.reverse();
方法二、冒泡排序
var arr=[1,5,7,9,16,2,4];
//冒泡排序,每一趟找出最大的,总共比较次数为arr.length-1次,每次的比较次数为arr.length-1次,依次递减
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
3.将数组转为字符串
场景一、将数组转化为普通的字符串
var a = [1,[2,3],[4,5]],[6,[7,[8,9],0]]]; //定义多维数组 var s = a.toString(); //把数组转换为字符串 console.log(S); //返回字符串“1,2,3,4,5,6,7,8,9,0”
场景二、将数组按照一定的规则分割字符串
var a = [1,2,3,4,5]; //定义数组
var s = a.join("=="); //指定分隔符
console.log(s);
4.数组的增加、删除、查找
场景一、增加 push尾插 var arr = ['a','b','c','d'] arr.push("e") // a,b,c,d,e arr.push("e", "f"); unshift()头插 var arr = ['a','b','c','d'] arr.unshift("e") // e,a,b,c,d arr.unshift("e", "f") // e,f,a,b,c,d 场景二、删除 头删 var arr = ['a','b','c','d'] arr.shift() // 删除 a, arr = ['b','c','d'] // 如果 arr = [] , arr.shift() 返回 undefined 尾删pop() var arr = ['a','b','c','d'] arr.pop() // 删除 d, arr = ['a','b','c'] // 如果 arr = [] , arr.pop() 返回 undefined 场景三、指定位置删除 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。 arrayObject.splice(index,howmany,item1) index: 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 item1, ..., itemX: 可选。向数组添加的新项目。
5.数组的合并
方法一、 let arr1=[1,2,3]; let arr2=[4,5,6]; let arr3=arr1.concat(arr2); 方法二、 let arr3=[...arr1,...arr2]
6.判断一个数组中是否包含某个值
//方法一、array.indexof,判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1 let arr=[1,2,3,4,5]; let index=arr.indexof(1); console.log(index)//返回下标0 //方法二、array.includes(),判断数组中是否存在某个值,如果存在返回true,否则返回false if(arr.includes(1)){ console.log("结果成立") } //方法3、array.find(回调函数,[]),返回数组中满足条件的第一个元素的值,如果没有,返回undefined let numbers=[12,3,4,2,44]; let result=numbers.find(item=>{ return item>8 }) console.log(result)//结果是12