一、新建数组的方法(两种方法)
//第一种方法
let b = new Array(3);
console.log(b.length); //3
// b[0] = 1;
// b[1] = 1;
// b[2] = 1;
// b[3] = 1; //[1,1,1,1]
let c = new Array(1,2,3);
console.log(c); //[1,2,3]
//第二种方法
let a = ["a","b","c"]; //[a,b,c]
二、操作数组的方法
- push()方法:在数组尾部添加元素,操作的原数组
let array=[1,2,3,4,5];
array.push(6); //一个参数
console.log(array); //[1, 2, 3, 4, 5, 6]
array.push(6,7); //两个参数
console.log(array); //[1, 2, 3, 4, 5, 6, 7]
array.push([6,7]); //参数为数组
console.log(array); //[1, 2, 3, 4, 5, 6, Array(2)]
- concat():创建并返回一个新的数组(可以复制数组)
let array=[1,2,3,4,5];
let newArr = array.concat(6); //一个参数
console.log(array); //[1, 2, 3, 4, 5]
console.log(newArr); //[1, 2, 3, 4, 5, 6]
let newArr = array.concat(6,7); //两个参数
console.log(array); //[1, 2, 3, 4, 5]
console.log(newArr); //[1, 2, 3, 4, 5, 6, 7]
let newArr = array.concat([6,7]); //参数为数组
console.log(array); //[1, 2, 3, 4, 5]
console.log(newArr); //[1, 2, 3, 4, 5, 6, 7]
//复制数组
let c = new Array(10,4,6);
let d = c.concat()
console.log(d)
总结:
push()是在原数组的基础上修改的;concat()是在新数组上进行操作,所以不会改变原数组的值。
如果参数不是数组,不管参数个数有多少个,push()和concat()都会直接把参数添加到数组后;如果参数是一个数组,push()就会直接把数组添加到原数组后,而concat()会把数组里的值取出来添加到原数组后
- pop()方法:在数组尾部删除一个元素
let c = new Array(1,2,3);
console.log(c); //[1,2,3]
c.pop(3)
console.log(c); //[1,2]
- unshift():在数组头部添加元素,和push用法一样
let c = new Array(1,2,3);
c.push([4,5]);
console.log(c); //[1, 2, 3, Array(2)]
- shift():在数组头部删除元素,和pop用法一样
let c = new Array(1,2,3);
console.log(c); //[1,2,3]
c.shift(2); //不管值是什么都是删除头部一个元素
console.log(c); //[2, 3]
- Array.join(",") 把数组按照指定字符转成字符串
let c = new Array(1,2,3);
console.log(c); //[1,2,3]
let str = c.join(",")
console.log(str); //1,2,3
- Arrar.reverse():将数组逆序数组,会修改原来数组
let c = new Array("a","c","b",5,"f");
console.log(c); //[a, c, b, 5, f]
c.reverse()
console.log(c); //[f, 5, b, c, a]
- Array.sort():将数组排序,如果不带参数,数组是以字母数组排序
let c = new Array("a","c","b",5,"f",1,100);
console.log(c); //[a, c, b, 5, f, 1, 100]
c.sort();
console.log(c); //[1, 100, 5, a, b, c, f]
如果是从小到大排序
let c = new Array(10,4,6);
c.sort((a,b) => a-b)
console.log(c); //[4, 6, 10]
如果是从大到小排序
let c = new Array(10,4,6);
c.sort((a,b) => b-a)
console.log(c); // [10, 6, 4]
- Array.slice():返回数组的片段或者是子数组,不会改变原数组的值
let arr = new Array(1,3,4);
let newArr = arr.slice(1,2);
console.log(arr); //[1, 3, 4]
console.log(newArr); //[3]
- Array.splice():删除或者插入元素,会修改原来数组的值
let arr = new Array(1,3,4);
let newArr = arr.splice(1,2);
console.log(arr); //[1]
console.log(newArr); //[3,4]
let arr = new Array(1,3,4);
let newArr = arr.splice(1,2,"a");
console.log(arr); //[1,a]
console.log(newArr); //[3,4]