数组基础知识概括
-------数组Array
数据结构,计算机存储,组织数据的方式。有序排列
在数组中,每一个值叫做元素,元素拥有唯一的位置叫做下标(索引)。
创建数组:
1.字面量
let arr = [];
2.
构造函数
let arr = new Array();
给数组添加值:
1.arr[index] = item
2.let arr = [item,item1,item2....]
属性,方法
arr.length 查看数组长度,索引 index 0
简单数据类型值与值比较,复杂数据类型址与址比较
let arr1 = [1,2,3]; //let arr2 = [1,2,3]; //console.log(arr1 == arr2);//false 址不一样 arr2 = arr1 console.log(arr1 == arr2)//true
获取数组里的值
`let arr = ["a","b","c",1,true];
for(let i = 0;i < arr.length;i++){
console.log(arr[i]);
}
for(let item of arr){
console.log(item);
}
for(let item in arr){
console.log(arr[item]);
}
//不能打断
arr.forEach(function(item,index){
console.log(item);
})
//arr.forEach((item,index) => console.log(item));------ 二维数组let arr = ["a","b","c",1,["A","B"]];
console.log(arr[4][0]);`
运行效率:for > for of > forEach > for in
for(let i = 0 , len = arr.length ; i < len ; i++){
.............
}
------数组方法
-
push():在数组的末尾添加;
let arr1 = [1,2,3]; arr1.push("A","B","C"); console.log(arr1);//[ 1, 2, 3, 'A', 'B', 'C' ]
2.pop():删除数组最后一位
arr1.pop("A"); console.log(arr1);//[ 1, 2, 3, 'A', 'B' ]
3.shift():删除数组首位;
arr1.shift(); console.log(arr1);//[ 2, 3, 'A', 'B' ]
4.unshift():在数组首位添加
arr1.unshift("d"); console.log(arr1);//[ 'd', 2, 3, 'A', 'B' ]
5.slice(start,end):不会改变原数组,截取从start开始到end的前一个数
let result = arr1.slice(0,3); console.log(result);//[ 'd', 2, 3 ]
6.splice(start,deleteCount,addItem):剪切,增删改,第二个参数为删除几项,第三个参数为添加
let result1 = arr1.splice(0,1,1); console.log(result1,arr1);// [ 'd' ] [ 1, 2, 3, 'A', 'B' ] let result2 = arr1.splice(2,1); console.log(result2,arr1);//[ 3 ] [ 1, 2, 'A', 'B' ] -
反转数组:arr.reverse();
-
排序:升序:arr.sort (functon(a,b){return a - b});降序:arr.sort (functon(a,b){return b - a})
箭头函数:arr.sort((a,b) => a-b);
-
连接:arr.concat(array);
-
查找:arr.indexOf(item); 返回item 存在的下标,没有就返回-1;
-
反向查找,arr.lastIndexOf(item);
let arr = [1,2,3,4], arr1 = ["A","B"]; console.log(arr.concat(arr1)); let Arr = arr.concat(arr1); console.log(Arr.lastIndexOf("B"));
12.arr.join(template) 数组 => 字符串
let arr = [1,2,3,4]; let result = arr.join("-") console.log(result);//1-2-3-4
13.split(template) 字符串 => 数组
console.log(result.split(","));//[ '1-2-3-4' ]
14.冒泡排序:
let arr = [20, 1, 35, 40, 2]; for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if(arr[i] < arr[j]){ let a; a = arr[i]; arr[i] = arr[j]; arr[j] = a; } } } console.log(arr);
15.arr.map(callback) 遍历,操作,返回新数组。
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let result = arr.map(item => item * 2); console.log(result); //[ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20];
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let result = arr.map(item => item * 2).join("-");//链式操作 console.log(result); //2-4-6-8-10-12-14-16-18-20
16.arr.filter():过滤,忽略掉undefined的值
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let result = arr.map(item => item * 2).join("-").split("").filter(item => item > 0); console.log(result);//['2', '4', '6', '8', '1', '1', '2', '1', '4', '1', '6', '1','8', '2'] //用filter()过滤掉 "-" ;
let arr = [0,1,2]; arr[5] = 5; console.log(arr); let result = arr.filter(item => item == undefined); console.log(result);//[]
17.arr.some():有一个符合条件则为true ;
18.arr.every():必须每一个符合条件才为true;
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let result = arr.some(item => item % 2 == 0); console.log(result);//true let result = arr.every(item => item % 2 == 0); console.log(result);//false
19.展开运算符 ,扩展运算符
let arr1 = [1, 2, 3], arr2 = ["A", "B"], arr3 = [...arr1, ...arr2];//[...arr]转换为字符串 console.log(arr3);//[ 1, 2, 3, 'A', 'B' ]
20.Set()可以去重,size 查看集合长度,添加:add ;判断是否有某个元素:has(item);
let arr = [1,2,3,3,1,2]; let s = new Set([1,2,3,3,1,2]); s.add(["A","B","C"]).add("R"); console.log(s);//Set { 1, 2, 3, [ 'A', 'B', 'C' ],"R" }; console.log(s.size);//4 arr = [...s] console.log(arr);//[1,2,3] s.delete(2); console.log(s); //Set { 1, 3, [ 'A', 'B', 'C' ],"R" }; s.clear() //清空 console.log(s); //Set {} console.log(s.has(3));//true
浙公网安备 33010602011771号