创建数组
- 方式1:
var arr = new Array()
arr[0] = '1'
2.方式2:
var arr = new Array('1','2','3')
3.方式3:
var arr = ['1','2','3']
数组方法
1.length()
length():返回数组中元素的数量
2.push()和pop():
push():在数组末尾添加一个或多个元素,并返回新数组的长度
pop():删除并返回数组的最后一个元素
var arr = ['1']
var num = arr.push('2') // num = 2,['1','2']
arr.pop() // ['1']
3.shift()和unshift()
shift():删除数组的第一个元素,并返回第一个元素
unshift():在数组开头添加一个或多个元素,并返回新数组的长度
var arr = ['1','2']
var num = arr.unshift('3') // num = 3,['3','1','2']
arr.shift() // ['1','2']
4.splice()
splice():用于插入、删除和替换数组元素(会改变原数组,如果删除了元素,则返回含有被删除的元素的数组)
①删除:arr.splice(要删除的第一项的下标,要删除的项数),arr.spilce(1,2)
var arr = [1,2,3]
var newArr = arr.splice(0,1) // [2,3]
②插入:arr.splice(起始下标,0,要插入的项) ,0是要删除的项数
var arr = [1,2,3]
var newArr = arr.splice(1,0,8,9) // [1,8,9,2,3]
③替换:arr.splice(起始下标,要删除的项数,要插入的项),插入的项数不必与删除的项数相等
var arr = [1,2,3]
var newArr = arr.splice(0,1,8,9) // [8,9,2,3]
5.concat()
concat():用于连接两个或多个数组(不会改变原数组,返回被连接数组的一个副本)
var arr1 = [1,2]
var arr2 = [3,4]
var newArr = arr1.concat(arr2) // [1,2,3,4]
6.join()
join():用于把数组中的所有元素转换一个字符串,连接字符默认为逗号(,) 原数组不变
var arr = [1,2,3]
var str1 = arr.join() // 1,2,3
var str2 = arr.join('-') // 1-2-3
7.toString()
toString():把数组转换为字符串,并返回结果,逗号分隔,原数组不变
var arr = [1,2,3]
var newArr = arr.toString() // '1,2,3'
8.reverse()
reverse():用于颠倒数组中元素的顺序,原数组改变
var arr = [1,2,3]
arr.reverse() // [3,2,1]
9.slice()
slice():从已有的数组中返回选定的元素,相当于截取数组元素(不改变原数组,返回一个新的数组,包含从 起始下标到结束下标的数组中的元素)
arr.slice(起始下标,结束下标) 不包括结束下标
var arr = [1,2,3,4,5,6]
var newArr = arr.slice(1,4) // [1,5,6]
10.sort()
sort():对数组的元素进行排序(会改变原始数组,字母或数字,并按升序或降序,默认为按字母升序)
var arr = ['a','d','b','c','e']
arr.sort() // ['a','b','c','d','e']
// 该方法比较的是字符串,没有按数值大小排序,实现数值排序:
function sortNum(a,b){
return a - b
}
var arr = [6,10,9,25,100]
arr.sort(sortNum) // [6,9,10,25,100]
11.indexOf()
indexOf():返回数组中某个指定的元素位置(在数组中没找到指定元素则返回 -1)
arr.indexOf(要查找的项,起点下标) 起点下标可选
var arr [1,2,3,3,2,1]
arr.indexOf(1) // 1
arr.indexOf(1,2) // 5
arr.indexOf(1,3) // 5
arr.indexOf(1,6) // -1
arr.indexOf('1') // -1
12.lastIndexOf()
lastIndexOf():返回一个指定的元素在数组中最后出现的位置(在数组中没找到指定元素则返回 -1)
arr.lastIndexOf(要查找的项,起点下标) 起点下标可选
var arr [1,2,3,3,2,1]
arr.lastIndexOf(2) // 4
arr.lastIndexOf(2,2) // 1
arr.lastIndexOf(2,4) // 4
arr.lastIndexOf(2,100) // 4
arr.lastIndexOf('1') // -1
13.forEach()
forEach():用于调用数组的每个元素,并将元素传递给回调函数(对于空数组是不会执行回调函数)
arr.forEach((数组元素,索引,数组本身)=>{})
var arr = [1,2,3]
arr.forEach((item,index,a)=>{
console.log(item+','+index+','+a)
})
// 1,0,[1,2,3]
// 2,1,[1,2,3]
// 3,2,[1,2,3]
14.map()
map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值(不会改变原始数组,不会对空数组进行检测)
var arr = [1,2,3]
var newArr = arr.map((item)=>{
return item * item
})
console.log(newArr) // [1,4,9]
15.includes()
includes():用来判断一个数组是否包含指定的值,返回true/false
arr.includes(要查找的元素,起始下标),起始下标可选
var arr = [1,2,3]
arr.includes(2) // true
arr.includes(5) // false
arr.includes(3,-1) // true
arr.includes(3,3) // false