数组
创建数组
1.Array构造函数
var arr1 = new Array("momo","lili")
2.数组字面量表达法
var arr2 = ["momo","lili"]
数组原型上的方法
join()
push()和pop()
shift() 和 unshift()
sort()
reverse()
concat()
slice()
splice()
indexOf()和 lastIndexOf() (ES5新增)
forEach() (ES5新增)
map() (ES5新增)
filter() (ES5新增)
every() (ES5新增)
some() (ES5新增)
reduce()和 reduceRight() (ES5新增)
其中join() 和 concat() slice() splice() 会生成副本
1.join()
var arr = [1, 2, 3, 4]
console.log(arr.join("+"));//1+2+3+4
console.log(arr);//[1, 2, 3, 4]
join(separator): 将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符,该方法只接收一个参数:即分隔符。
2.push()和pop()
push(a)
:数组末尾添加a,1.改变原数组 2.返回的是新数组数组长度
var arr = [1, 2, 3, 4]
console.log(arr.push(5));//5
console.log(arr);//[1, 2, 3, 4,5]
pop()
数组末尾删除一个,1.改变原数组,2返回删除元素
var arr = [1, 2, 3, 4,1]
console.log(arr.pop())//1
console.log(arr)//[1, 2, 3, 4]
3.shift() 和 unshift()
shift()
:删除第一个元素,1.改变原数组 2.返回删除元素
var arr = [1, 2, 3, 4,1]
console.log(arr.shift())//1
console.log(arr)//[ 2, 3, 4,1]
unshift()
:对应push(),unshift()是在数组头部添加:1.改变数组,2.返回长度
略
4.sort()
:排序,
无参数时根据字符串Unicode码排
升序
arr.sort((a, b) => a - b)
降序
arr.sort((a, b) => b - a)
乱序
arr.sort((a,b) => Math.random() - 0.5})
5.reverse()
将数组中元素的位置颠倒
var arr = ["one","two","three"]
console.log(arr.reverse())//["three", "tow", "one"]
console.log(arr) //["three", "tow", "one"]
6.concat()
用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var arr1 = [1,2]
var arr2 = [3,4]
var arr3 = arr1.concat(arr2)
console.log(arr1);//[1,2]
console.log(arr2);//[3,4]
console.log(arr3);//[1, 2, 3, 4]
7.数组slice()
和splice()
,字符串方法slice()
和split()
这四个方法极容易混淆
先来两个数组方法slice、splice
slice(stary,end)
:对数组截取,1.包前不包后 2.原数组不变 3.返截取得到的数组
var arr = [0,1, 2, 3, 4]
console.log(arr.slice(0,3));// [0, 1, 2]
console.log(arr);//[0,1, 2, 3, 4]
splice()
splice(a) //从0开始,截取a位
splice(a,b)//从a开始,截取b位
splice(a,b, c)//从a开始,截取b位,替换成C
1.改变原来数组 2.返回截取到的数组
再看看字符串的slice、split
slice()
字符串的和数组的用法一样
split()
split(a)//以a为分割符,讲字符串以a为界分割(不包括a),a可以是一个字符串或一个正则表达式
split(a,b)//b指定得到的数组长度
split()不改变原字符串