数组基础知识概括

-------数组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++){

​ .............

}
------数组方法

  1. 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' ]

  2. 反转数组:arr.reverse();

  3. 排序:升序:arr.sort (functon(a,b){return a - b});降序:arr.sort (functon(a,b){return b - a})

箭头函数:arr.sort((a,b) => a-b);

  1. 连接:arr.concat(array);

  2. 查找:arr.indexOf(item); 返回item 存在的下标,没有就返回-1;

  3. 反向查找,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

posted on 2020-12-26 13:28  wpwp123  阅读(77)  评论(0)    收藏  举报