一、修改原数组的API
(1)、pop() 取出末尾,并返回这个元素
var arr = [10, 20, 30, 40, 50];
var popRes = arr.pop();
console.log(popRes, arr);
(2)、shift()取出开头,并返回这个元素
var arr = [10, 20, 30, 40, 50];
var shiftRes = arr.shift();
console.log(shiftRes, arr);
(3)、push() 添加末尾,且返回length(数组长度)
var arr = [10, 20, 30, 40, 50];
var pushRes = arr.push(60);
console.log(pushRes, arr);
(4)、 unshift()在数组开头添加一个或者多个元素,且返回length(数组长度)
var arr = [10, 20, 30, 40, 50];
var unshifts = arr.unshift(0);
console.log(unshifts, arr);
(5)、splice() 用于添加或删除数组中的元素
var color = ['pink', 'orange', 'red', 'black'];
color.splice(2, 0, 'blue', 'white');
console.log(color);
(6)、reverse()逆转数组的顺序
var arr = [5, 4, 3, 2, 1];
var rse = arr.reverse();
console.log(arr, rse);
(7)、sort()给数组排序(首位数默认从小到大)
var arr = [5, 9, 3, 4, 2, 1, 6, 10];
var rse = arr.sort();
console.log(arr, rse);
//结果[1, 10, 2, 3, 4, 5, 6, 9]
// 正序排序
var rse = arr.sort(function(a, b) {
return a - b
})
console.log(arr, rse);
//结果[1, 2, 3, 4, 5, 6, 9, 10]
//倒序排序
var rse = arr.sort(function(a, b) {
return b - a
})
console.log(arr, rse);
[10, 9, 6, 5, 4, 3, 2, 1]
二、不改变源数组(不会对原数组造成副作用),返回一个新数组。
(1)、concat()把传入的数组,或者元素+数组合并成一个新的数组,返回这个新数组
var arr1 = [10, 20, 30, 40];
var arr2 = arr1.concat([50, 60, 70])
console.log(arr2, arr1);
(2)、slice()截取数组,不会改变原数组
第一个参数0,第二个参数3
var arr1 = [10, 20, 30, 40];
var arr2 = arr1.slice(0, 3);//从数组的第0位截取到数组的第3位
console.log(arr2);
如果不给第二个参数,那么就从第1个参数的位置截取到数组的最后
var arr2 = arr1.slice(2);
(3)、join()把数组中的元素连接成一个字符串并返回,不会改变原数组
可以选择用什么作为分隔符,空字符串就代表没有分隔符
var arr1 = [10, 20, 30, 40];
var arr2 = arr1.join('');
var arr2 = arr1.join(',');
console.log(arr2);
(4)、indexOf()查找元素在数组中第一次出现时的索引,如果没有就返回-1
如果数组中有你要找的数字,就返回你要找的数字的索引
var arr1 = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6];
var arr2 = arr1.indexOf(3);
console.log(arr2);
如果数组中没有你要找的数字,就返回-1
var arr1 = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, ];
var arr2 = arr1.indexOf(7);
console.log(arr2)`;
(5)、lastIndexOf()查找元素在数组中最后一次出现时的索引,如果没有就返回-1
var arr1 = [1, 2, 4, 6, 8, 1, 2, 4, 6, 8];
var arr2 = arr1.lastIndexOf(4);
console.log(arr2);
三、数组遍历方法
(1)、forEach() 传入一个函数,把数组的每一项作为函数的参数被调用,不改变原数组
var arr = [10, 20, 30, 40, 50, 60];
arr.forEach(function(item) {
console.log(item);
})
(2)、map()传入一个函数,把数组的每一项作为函数的参数被调用,然后用函数每次的返回值组成新的数组并返回,不改变原数组
/map 数组中元素为原始数组的平方根
var arr = [10, 20, 30, 40, 50, 60];
var arr1 = arr.map(function(item) {
return item ** 2;
})
console.log(arr1);
(3)、filter()传入一个函数,把数组的每一项作为函数的参数被调用,在函数内部判断符合条件的每一项,把它们组成新的数组并返回,不改变原数组
var arr1 = [10, 20, 30, 40];
var arr2 = arr1.filter(function(item) {
return item > 30;
})
console.log(arr2, arr1);