数组的方法总结
concat()
concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
let arr1 = [1,2,3];
let arr2 = [4,5,6];
console.log(arr1.concat(arr2));//[1,2,3,4,5,6]
console.log(arr1);//[1,2,3,]
console.log(arr2);//[4,5,6]
join()
join()用于将数组中的所有的元素放入到一个字符串内,并以指定的字符进行分割,并返回。
let arr = new Array()
arr[0] = '123'
arr[1] = '456'
arr[2] = '789'
let str = arr.join();
console.log(str)//123,456,789
// 使用字符串";"分割数组的元素
let str1 = arr.join(';')
console.log(str1)//123;456;789
pop()
pop()用于删除 arrayObject 的最后一个元素,把数组长度减一,并返回删除元素的值。果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
var arr = new Array(3)
arr[0] = "zhangsan"
arr[1] = "lisi"
arr[2] = "wangwu"
console.log(arr)// ['zhangsan', 'lisi', 'wangwu']
console.log(arr.pop())//wangwu
console.log(arr)//['zhangsan', 'lisi']
shift()
shift()用于把数组的第一个元素从其中删除,并返回第一个元素的值。
var arr = new Array(3)
arr[0] = "zhangsan"
arr[1] = "lisi"
arr[2] = "wangwu"
console.log(arr)// ['zhangsan', 'lisi', 'wangwu']
console.log(arr.shift())//zhangsan
console.log(arr)// ['lisi', 'wangwu']
unshift()
unshift()用于向数组的开头添加一个或更多元素,并返回新的长度。
var arr = new Array(3)
arr[0] = "zhangsan"
arr[1] = "lisi"
arr[2] = "wangwu"
console.log(arr)// ['zhangsan', 'lisi', 'wangwu']
console.log(arr.unshift(123))//4
console.log(arr)// [123, 'zhangsan', 'lisi', 'wangwu']
push()
push() 用于把它的参数顺序添加到数组的尾部。
var arr = new Array(3)
arr[0] = "zhangsan"
arr[1] = "lisi"
arr[2] = "wangwu"
console.log(arr)// ['zhangsan', 'lisi', 'wangwu']
console.log(arr.push(123))//4
console.log(arr)// [ 'zhangsan', 'lisi', 'wangwu',123]
reverse()
reverse()方法将数组中元素的位置颠倒。
var arr = new Array(3)
arr[0] = "zhangsan"
arr[1] = "lisi"
arr[2] = "wangwu"
console.log(arr)// ['zhangsan', 'lisi', 'wangwu']]
console.log(arr.reverse())// ['wangwu', 'lisi', 'zhangsan']
slice()
slice()用于截取指定位置的数组。
var arr = new Array(3)
arr[0] = "zhangsan"
arr[1] = "lisi"
arr[2] = "wangwu"
console.log(arr)// ['zhangsan', 'lisi', 'wangwu']]
console.log(arr.slice(2))// ['wangwu']
sort()
sort()用于数组排序。
var arr = [817,717,1412,621]
//没有函数参数,按字符编码格式排序
console.log(arr.sort())//[1412, 621, 717, 817]
// 需要升序或者降序则需要传入一个函数参数
console.log(arr.sort(function(a,b){
return a - b
}))//[621, 717, 817, 1412]
//降序
console.log(arr.sort(function(a,b){
return b - a
}))//[1412, 817, 717, 621]
splice()
splice()用于方法用于添加或删除数组中的元素,会改变原数组。
//删除
var arr =['zhangsan', 'lisi', 'wangwu']
//从0开始,删除2个
console.log(arr.splice(0,2))//['zhangsan', 'lisi']
console.log(arr)//['wangwu']
//添加
var arr =['zhangsan', 'lisi', 'wangwu']
//从2开始,删除0个,添加"kid"
console.log(arr.splice(2,0,"kid"))//[]
console.log(arr)//['zhangsan', 'lisi', 'kid', 'wangwu']
toString()
toString()用于根据所传递的参数把数值转换为对应进制的数字字符串。
var arr = 17;
console.log(arr.toString(2));//10001
console.log(arr.toString(4));//101
console.log(arr.toString(16));//11
valueOf()
valueOf()用于返回数组对象的原始值。
//语法
arrayObject.valueOf()
indexOf()
indexOf()用于判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,如果存在返回该元素或字符第一次出现的位置的索引,不存在返回-1。
var arr = [1, 2, 3, 2];
console.log(arr.indexOf(2));//1
console.log(arr.indexOf(4));//-1
lastIndexOf()
indexOf()和lastIndexOf()语法是一样的,但查找的顺序相反,indexOf是从前往后查,而lastIndexOf是从后往前查。
var arr = [1, 2, 3, 2];
console.log(arr.lastIndexOf(2));//3
console.log(arr.lastIndexOf(4));//-1
forEach()
forEach()用于对数组的每个元素执行一次提供的函数。
var arr = ['a', 'b', 'c'];
arr.forEach(function(element) {
console.log(element);
});//a b c
map()
map()用于返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.map((item) => {
return item * item;
})
console.log(newArr) // [1, 4, 9, 16, 25]
filter()
filter()用于对数组进行过滤,创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let res = nums.filter((num) => {
return num > 5;
});
console.log(res); // [6, 7, 8, 9, 10]
every()
every()用于检测数组中的所有元素是否都满足指定条件,如果有有一项不满足条件,则表达式返回false,剩余的项将不会再执行检测;如果遍历完数组后,每一项都符合条,则返回true。不会改变原始数组。
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let res = arr.every((arr) => {
return arr > 5;
});
console.log(res); // false
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let res = arr.every((arr) => {
return arr > 0;
});
console.log(res); // true
some()
some()用于检测数组中的元素是否满足指定条件。
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let res = arr.some((arr) => {
return arr > 5;
});
console.log(res); // true
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let res = arr.some((arr) => {
return arr > 11;
});
console.log(res); // false
reduce()
reduce()用于遍历数组中的每一个元素,每遍历一次就会执行一次回调函数。当遍历完之后会将最后的结果返回出去。
const arr=[1,2,3,4,5]
const newarr=arr.reduce((previousValue,current)=>{
console.log(previousValue+'-----'+current);
//结果为:
//1-----2
//3-----3
//6-----4
//10-----5
return previousValue + current // 求和运用
});
console.log(newarr); //输出 15
reduceRight()
reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
const arr=[1,2,3,4,5]
const newarr=arr.reduceRight((previousValue,current)=>{
console.log(previousValue+'-----'+current);
//结果为:
//5-----4
//9-----3
//12-----2
//14-----1
return previousValue + current // 求和运用
});
console.log(newarr); //输出 15