什么是数组?
数组是一种特殊的变量,它能够一次存放一个以上的值。数组的类型可以是任意类型!!!
如何创建数组?(new Array)
1.常规方式
var arr = new Array(2); // 创建一个长度为3的数组! 前面的[0][1][2],表示的是索引
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
2.简洁方式
var arr = new Array(1,2,3); //创建一个元素为1,2,3,长度为3的数组
3.字面量表示法。数组里面的数据一定要用逗号隔开;
var arr = [1,2,3,4];
var arr = []; // 空数组
如何访问数组?
可以通过索引来访问数组,索引是数组的序号,数组索引是从0开始数的!
格式:
数组名 [ 索引号 ];
var arr = [1 , 2 , 3 , 4 ];
索引: 0 1 2 3
我们可以通过索引直接访问数组中的元素! , 如果没有这个数组的元素,就会输出结果 undefined;
var arr = [1 , 2 , 3 , 4 ];
console.log(arr[2]); // 浏览器打印出来索引为2的元素就是 3,因为索引是从0开始的
索引不光可以取值,还可以赋值
var arr = [1,2,3,4];
arr[1] = 16;
console.log(arr); //浏览器打印出来就为:1, 16, 3, 4
// 直接将 16 赋值给索引为 1 的元素
push 意思是在数组的末尾添加一个和多个新元素 (常用)
var arr = [1,2,3,4];
arr.push(99,78);
console.log(arr); // 浏览器解析出来就是 1, 2, 3, 4, 99, 78
pop 意思是删除并返回数组的的最后一个元素(会改变原数组);
var arr = [1,2,3,4];
console.log(arr.pop()); // 删除最后一个 4;
console.log(arr); //现在变成 1,2,3
.sort(function(a,b) {return a-b}); 数组进行排序
var arr = [2,58,4,7,48,637];
arr.sort(function(a,b) {return a-b}); // 这里需要注意的是 {return a-b}是从小到大,{return b-a}是从大到小
console.log(arr) //(6) [2, 4, 7, 48, 58, 637]
unshift(item1,item2...)向数组前面添加一个或多个元素(会改变原数组);
var arr = [23,57,46];
arr.unshift(55,74); // 在数组的前面添加一个或多个元素!
console.log(arr); // 浏览器打印出来为 55,74,23,57,46
shift();删除数组中索引为0(第一个)的那个元素,并返回数组(会改变原数组);
var arr = [1,2,3,4];
arr.shift(); // 删除数组中索引为0的哪个元素,即删除 1
console.log(arr); // 浏览器解析出来为 2,3,4
indexOf 返回元素在数组中所在的位置(索引值)从前往后第一个,没有的话 返回-1;
var arr = ["a", "b", "c", "d"];
var index = arr.indexOf("c");
console.log(index); // 2
var index2 = arr.indexOf("f");
console.log(index2); // 找不到返回-1
lastIndexOf 返回元素在数组中所在的位置(索引值) 从前往后找最后一个(也就是从后往前找第一个),没有的话返回-1;
var arr = ["a", "b","f","c", "f","d"];
var index = arr.lastIndexOf("f")
console.log(index); //4 索引位置从0开始数
reverse();翻转数组的顺序,并重新排列(会改变原数组);
var arr = [1,2,3,4,5,6,7,8,9];
arr.reverse(); // 将原先的数组进行翻转
console.log(arr); //解析出来为 9,8,7,6,5,4,3,2,1
splice(index,lenght,item,item...); 从index索引开始的位置,删除长度为几的元素,然后在将元素item1,item2添加到index索引开始的位置 (会改变原数组);
//index:索引开始的位置(从0开始数); length 长度(删除几个) ,item需要添加的元素
var arr = [2,3,4,5,6];
arr.splice(1,2,99,18); // 从索引位置为1(从0开始数)开始,删除2个元素包括索引位置自己,将99 18 添加到索引位置为1的位置
console.log(arr); // 浏览器解析出来为 2,99,18,5,6
//如果从中间添加,就将长度length写为 0 就可以了
slice(index1,index2); 从index1开始截取至 index2,但不包含index2,以一个新的数组形式返回到截取到的元素 (不会改变原数组)
var arr = [2,3,4,5,6];
console.log(arr=arr.slice(1,4)); // 截取索引位置为1到4位置的数,但不包括4
join(); 方法用于把数组中的所有元素放入一个字符串。元素是通过()中指定的分隔符进行分隔的。 如果()中没有写 就默认用 , 作为分隔符! (不会改变原数组);
var arr = ["3","18","27"];
console.log(arr.join("+")); // 浏览器解析出来为 3+18+27
console.log(arr); // 浏览器解析出来为3,18,27(不改变原数组)
concat(arr1,arr2...); 用来拼接两个或者多个数组并返回新的数组(不会改变原数组);
var arr1 = [1,2,3,4];
var arr2 = [5,6,7,8,9];
console.log(arr1.concat(arr2)); // 就第一个数组和第二个数组拼接到一起 解析出来是 1, 2, 3, 4, 5, 6, 7, 8, 9
console.log(arr1); //但是不改变原数组 解析出来arr1 仍是 1,2,3,4
arr1 = arr1.concat(arr2); //如果想要改变,就新数组赋值给原数组arr1
console.log(arr1);