push()
可以把一个或多个元素添加到数组的末尾,返回数组的长度。
新建数组arr元素为1 2 3,console.log(arr.push(4))
执行 console 时已经触发了push在arr数组中添加了数字4,所以返回的是数组长度4,在看arr数组1 2 3 4 在末尾添加成功:
//增 push()
var arr = [1,2,3];
console.log(arr.push(4)); //4
console.log(arr); //1 2 3 4
unshift()
可以在数组的最前方添加一个或多个元素,并返回新的长度。
例子:
var arr = [1,2,3];
console.log(arr.unshift(0)); //4
console.log(arr); //0 1 2 3
concat()
这个方法可以连接一个或多个数组和字符串,但不会改变原数组,返回一个该数组的副本。
建立两个数组,进行连接,然后打印原数组和concat方法的数组,可以看到arr数组不变,但是arr.concat(arr1)
的值添加了arr1的元素,添加的对象为数组时不会添加整个数组而是把该数组的元素添加进去:
var arr = [1,2,3];
var arr1 = [4,5,6];
console.log(arr)
console.log(arr.concat(arr1))
var arr = [1,2,3];
var arr1 = [4,5,6];
var arr2 = [];
arr2 = arr.concat(arr1);
console.log(arr)
console.log(arr2)
splice()
方法也可删除,下面列出别的删除方法
pop()
和 push()
都是末尾,单pop是删除末尾的元素。但是pop返回的是删除的那个元素,如删除了数字1,那pop的结果就是1,pop会改变原数组。
我们来看例子,打印pop方法结果为3,删除的也是3,而arr数组已经没有了数字3:
var arr = [1,2,3];
console.log(arr.pop()) //3
console.log(arr) //1 2
shift()
和unshift()
相反,shift是删除第一个的元素,返回删除的第一个元素,并且改变原数组。
删除arr中的第一个元素,返回结果为1,原数组改成为2 3:
var arr = [1,2,3];
console.log(arr.shift()) //1
console.log(arr) //2 3
slice()
,用于截取数组的某一部分返回被截取的那部分数组。不会改变原数组。可以对字符串使用。
写法:
slice(从哪里开始接错,到哪里结束)
可以是负数如-1就是末尾开始,如果第二个参数不填就是截取到末尾超过数组的长度也是到末尾结束。
例子:
从1到第五位
var arr = [1,2,3,4,5];
console.log(arr.slice(1,5)) //[2, 3, 4, 5]
在这里插入图片描述
在试试负数,结束位置不写看看效果:
var arr = [1,2,3,4,5];
console.log(arr.slice(-3)) //[3, 4, 5]
splice()
用于添加/删除数组中的元素,会改变原数组,可以选择从哪个位置开始删除/添加,删除/添加几个。
我们先添加一个数字试试,splice(添加或删除的索引位置,删除的个数如不填删到末尾,添加的元素)
:
var arr = [1,2,3];
arr.splice(3,0,4) //从索引3开始删除0个添加数字4
console.log(arr); //1 2 3 4
var arr = [1,2,3];
arr.splice(1,1)
console.log(arr);
还可以从中间删除然后在添加进行更改:
从第二位删除两位添加数字8
var arr = [1,2,3,5,6,7];
arr.splice(2,2,8)
console.log(arr); //[1, 2, 8, 6, 7]
indexOf()
方法可返回某个指定的字符串值在字符串中首次出现的位置(索引),如果没有这个值会返回-1。
查找6,返回的是4,是索引值。在查8,数组中并没有所以返回-1可以利用这个特性做出数组去重:
var arr = [1,2,3,5,6,7];
console.log(arr.indexOf(6)) //4 返回索引位置。
console.log(arr.indexOf(8)) //-1
去重:
var arr1 = [1, 3, 4, 5, 5,6,1,2,3,5,4,4,8,8,9,6];
function find() {
var newArr = [];
for (var i = 0; i < arr1.length; i++) {
if (newArr.indexOf(arr1[i]) == -1) {
newArr.push(arr1[i]);
}
}
document.write(newArr);
}
find(arr);
lastIndexOf()
方法可返回某个指定的字符串值在字符串中最后出现的位置(索引),如果没有这个值会返回-1。
这个方法就是和indexof相反的,indexof是首次出现而lastIndexOf是最后出现。
例子:
var arr = [1, 2, 2, 3, 3, 4,4];
console.log(arr.lastIndexOf(3)) //4 返回索引位置。
console.log(arr.lastIndexOf(8)) //-1