一、数组的遍历
利用for循环进行遍历
数组遍历的唯一真理
var arr = [1,3,5,8,6,7,6];
for(var i = 0;i < arr.length;i++){
console.log(arr[i]);
}
二、多维数组
1、二维数组
访问二维数组,先访问第一个,再访问第二个 类似于在一个小区,先找第几栋楼再找第几层。
var arr1 = [[1, 2, 3],['5', '6', '7']];
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr1[i].length; j++) {
console.log(arr1[i][j]);
}
}
2、多维数组
跟二维数组一样,在一个小区,先找第几栋楼再找第几层,在楼层里去找哪户房间号,再去找房子里的具体的人
var arr = [[1, [9, 5, 4], 3],["a", "b", "c"]];
console.log(arr[0][1][0]);
三、栈方法和队列方法
栈方法 先进后出 队列方法 先进先出
1、push 末尾添加元素
在元素的末尾的位置添加,需要几个就可以添加几个
参数 | 需要添加的元素、可以写多个 |
返回值 | 会返回一个添加完之后的数组的长度,之间使用逗号分隔 |
会不会改变 | 会改变原本的数组 |
var arr = [1, 2, 3, 4, 5];
arr.push('溜溜溜', '嘁嘁嘁', '叭叭叭');
console.log(arr);
2、pop 末尾删除元素
删除末尾位置的一个元素
参数 | 不需要参数 |
返回值 | 返回删除的元素 |
会不会改变 | 会改变原本的数组 |
var arr = [1, 2, 3, 4, 5];
arr.pop();
console.log(arr);
3、unshift 头部添加元素
在元素的头部的位置添加,需要几个就可以添加几个
参数 | 需要添加的元素 可以写多个,之间使用逗号分隔 |
返回值 | 会返回一个添加完之后的数组的长度 |
会不会改变 | 会改变原本的数组 |
var arr = [1, 2, 3, 4, 5];
arr.unshift('咯咯咯');
console.log(arr);
4、shift 头部删除元素
删除头部的位置的一个元素
参数 | 不需要参数 |
返回值 | 返回删除的元素 |
会不会改变 | 会改变原本的数组 |
var arr = [1, 2, 3, 4, 5];
arr.shift();
console.log(arr);
四、数组的检索方法
1、includes
用于 查找 是否包含某个元素 返回 布尔值 采用的是全等于。如果超过最大的索引下标那么不会在检索了 -1 表示 为最后一个元素。如果 arr.length + 查询的开始位置的数字 为 负数 那么就会从头开始检索
参数 | 1.需要查找的元素 2.从哪个位置开始查找 索引下标 |
返回值 | 布尔值 是否找到的结果 |
会不会改变 | 不会改变原本的数组 |
var arr = [1, 2, 3, 4, 1];
console.log(arr.includes(9)); // false 没有找到
console.log(arr.includes(1, -99)); // true 找到了
console.log(arr.includes('1')); //false 没有找到
2、indexOf
用于 查找 是否包含某个元素 返回 索引下标 第一次出现的位置 采用的是全等于。如果超过最大的索引下标那么不会在检索了 -1 表示 为最后一个元素
参数 | 1.需要查找的元素 2从哪个位置开始查找 索引下标 |
返回值 | 索引下标 没有找到返回 -1 |
会不会改变 | 不会改变原本的数组 |
var arr = [1, 2, 3, 4, 1];
console.log(arr.indexOf(99)); // -1 没有找到
console.log(arr.indexOf(1, 1));// 4
五、数组转字符串
1、join
数组转字符串 将数组里面的每一个元素分别拿出来 拼接到一个字符串中
参数 | 更像是每一个元素的分隔符,可以自定义分隔符 |
返回值 | 返回有内容组成的字符串 |
会不会改变 | 不会改变原本的数组 |
var arr = ['a', 'b', 'c'];
var str = arr.join('*');
console.log(str);
2、toString
数组转字符串,跟join作用一样
参数 | 更像是每一个元素的分隔符,默认逗号进行分隔 |
返回值 | 返回有内容组成的字符串 |
会不会改变 | 不会改变原本的数组 |
var arr = ['a', 'b', 'c'];
var str = arr.toString();
console.log(str);
六、其他操作方法
1、isArray
判断传入的是否是一个数组
参数 | 就是需要检测的变量 |
返回值 | 布尔值 是否是一个数组 |
会不会改变 | 不会改变原本的数组 |
var arr = [1, 2, 3];
console.log(Array.isArray(arr));
2、splice
增、删、改
参数 | 参数1 需要增加删除修改的起始位置(必须)会到哪个地方 参数2 是需要删除的个数(可选) 参数3 增加的元素(可选) |
返回值 | 返回被修改的内容 |
会不会改变 | 会改变原本的数组 |
var arr = [1, 2, 3];
arr.splice(2,0,'你好');
arr.splice(1,2);//删
arr.splice(2, 3, '三', '四', '五');//改
3、slice
截取数组
1.如果参数只有开始没有结束 那么会从开始一直到最后
2.如果参数值只有一个0 那么会把数组原封不动的打印一遍
参数 | 开始到结束 (不包含结束位置) |
返回值 | 截取出来的数组 |
会不会改变 | 不会改变原数组 |
var arr2 = [9,8,7,6,5,4,3];
console.log(arr2.slice(1,-2));
4、reverse
颠倒数组
参数 | 不需要参数 |
返回值 | 返回颠倒之后的数组 |
会不会改变 | 会改变原数组 |
var arr3 = [9,8,7,6,5,4,3];
console.log(arr3.reverse());
5、concat
合并多个数组 将参数里面的数组合并到当前数组中
参数 | 需要进行合并的数组 |
返回值 | 返回合并之后的数组 |
会不会改变 | 不会改变原数组 |