javaScript常见的数组:
1.push() 末尾添加,返回长度,改变原数组
push()方法可以向数组后添加一个新的元素,并返回新数组的长度。
var a = [1,2,3];var b = a.push(4);console.log(a);//[1,2,3,4]console.log(b);//4
2.unshift() 首部添加,返回长度,改变原数组
unshift()可以向数组前添加一个或多个元素,并返回新的长度。
var a = [2,3,4];var b = a.unshift(0,1);console.log(a);//[0,1,2,3,4]console.log(b);//5
3.pop() 尾部删除,返回被删除的元素,改变原数组
pop() 用于删除并返回最后一个元素。
vara = [1,2,3]varb = a.pop()console.log(a)// [1,2]console.log(b)// 3
4.shift() 删除首部元素,返回被删元素,改变原数组
shift() 用于删除并返回首个元素
var a = [1,2,3]varb = a.shift()console.log(a)// [2,3]console.log(b)// 1
5.splice() 修改删除。对数组进行删除修改,返回被删除的元素组成的数组,改变原数组
splice(index,length,增加的元素1,增加的元素2…,增加的元素N) 表示从index开始删除length个元素,并从index开始新增元素1~N,放回被删除的元素组成的数组
var a = [1,2,3]var b = a.splice(1,1,3,[2,3,4],5)console.log(a) // [1,3,[2,3,4],5,3]console.log(b) // [2]
6.concat() 拼接合并两个或多个数组,返回新数组,不会改变原数组
concat() 方法用来合并两个或多个数组
var a = [1,2,3]var b = [4,5]var c = a.concat(b)console.log(a) // [1,2,3]console.log(b) // [4,5]console.log(c) // [1,2,3,4,5]
7.slice() 剪切 返回新数组,不改变原数组
slice(startIndex,endIndex) 返回从startIndex开始(包括),到endIndex(不包括)之间的原属组成的数组
var a = [1,2,3]var b = a.slice(0,1)// 不填参数则表示剪切整个数组var c = a.slice()console.log(a) // [1,2,3]console.log(b) // [1]console.log(c) // [1,2,3]console.log(a===c) // false // 注意 a !== c// 负数表示从后往前数var d = a.slice(-1,-2)console.log(d) // [] 从左向右截取,所以说为[]var e = a.slice(-1)console.log(e) // [3]
8.join()不改变原数组,返回转换后的字符串
join() 方法用来将数组转换为字符串
var a = [1,2,3,4,5]console.log(a.join(\',\'))// 1,2,3,4,5console.log(a)// [1,2,3,4,5]
9.sort() 排序 改变原数组,返回排序后的数组
var a = [\'a\',\'b\',\'d\',\'c\']console.log(a.sort()) // [\'a\',\'b\',\'c\',\'d\']console.log(a) // [\'a\',\'b\',\'c\',\'d\']
10.reverse() 颠倒顺序 返回的是颠倒后的数组,会改变原数组。
reverse() 方法用于颠倒数组中元素的顺序。
var a = [1,3,2,7,6]console.log(a.reverse()) // [6,7,2,3,1]console.log(a) // [6,7,2,3,1]
11.indexOf()和lastIndexOf() 不会改变原数组,返回找到的index,否则返回-1
indexOf(某元素,startIndex) 从startIndex开始,查找某元素在数组中的位置,若存在,则返回第一个位置的下标,否则返回-1
lastIndexOf(某元素,startIndex) 和indexOf()相同,区别在于从尾部向首部查询
若不使用下标,则一般通过includes()方法代替indexOf()
var a = [1,2,4,3,4,5]console.log(a.indexOf(4)) // 2console.log(a.indexOf(4,3)) // 4
12.filter() 过滤 filter() 方法返回数组中满足条件的元素组成的新数组,原数组不变
filter()的参数是一个方法
var a = [1,2,3,4,11]// 第一个参数为一个方法,有三个参数,current:当前值 index:当前值下标 array:这个数组对象var b = a.filter(function(current,index,array){return current < 10})console.log(b) // [1,2,3,4]console.log(a) // [1,2,3,4,11]
13.map() 格式化数组 map() 方法来根据需求格式化原数组,返回格式化后的数组。原数组不变
var a = [1,2,3,4,5]// 参数同filter方法var b = a.map(function(current,index,array){return current + 1})console.log(b) // [2,3,4,5,6]console.log(a) // [1,2,3,4,5]
14.every() 对数组的每一项都运行给定的函数,若每一项都返回 ture,则返回 true
var a = [1,2,3,4,5]var b = a.every(function(current,index,array){return current < 6})var c = a.every(function(current,index,array){return current < 3})console.log(b) // trueconsole.log(c) // false
15.some() 对数组的每一项都运行给定的函数,若存在一项或多项返回 ture,则返回 true
var a = [1,2,3,4,5]var b = a.some(function(current,index,array){return current > 4})var c = a.some(function(current,index,array){return current > 5})console.log(b) // trueconsole.log(c) // false
16.forEach() 数组遍历 遍历整个数组,中途不能中断
var arr = [\'a\',\'b\',\'c\']var copy = []arr.forEach(function(item){copy.push(item)})console.log(copy)