1、数组的创建方式(两种)
var arr = new Array();
或者
var str = ["1","2","3","4"];
数组的检测方法(也是两种)
var str = ["red","green","blue"]
console.log(str instanceof Array) // 返回值为true
或者
var str = ["red","green","blue"]
console.log( Array.isArray(str)) //返回值为true
2、转换方法
所有对象都具有toLocaleString()、toString和valueof()方法。
toString和toLocaleString的返回值相同,都是每个值的字符串形成拼接,用逗号隔开。
valueOf的返回值还是数组。
列如
var str =["red","blue","green"]
console.log(str.toString()) // 返回值为:red,blue,green
console.log(str.toLocaleString()) // 返回值为:red,blue,green
console.log(str.valueOf()) // 返回值为:(length为3) ["red", "blue", "green"]
join()方法 数组转字符串
var str =["red","blue","green"]
console.log(str.join("")) // 输出值为:redbluegreen
console.log(str.join(",")) // 输出值为:red,blue,green
console.log(str.join("|")) //输出值为:red | blue | green
栈方法
栈是一种LIFO(后进先出)的数据结构,最后进来的先出去。
栈方法有:
1,push( )方法从最后面添加元素,并返回修改后的数组长度
var arr = [1, 4, 5, 6, 7, 7, 9];
console.log(arr.push(10)); //8 数组的长度
console.log(arr); // [1, 4, 5, 6, 7, 7, 9,10];
2,pop():在数组的末尾删除任意参数,返回值为被删除的项。
var str =["red","blue","green"]
console.log(str.pop()) // 输出值为:green;
console.log(str) // 输出值为:(4) ["red", "blue"]
队列方法
队列方法是一种先进先出(FIFO:frist in frist out),先进来的先出去
1,unshift:在数组的最前端添加参数,返回值为新的数组长度。
var arr = [1, 2, 3, 4, 5, 6, 7];
console.log(arr.unshift(5)); //8返回新数组的长度
console.log(arr);//输出值为 (8)[5,1, 2, 3, 4, 5, 6, 7];
2,shift:删除数组最前端的一项,返回值为被删除的项。
var arr = [1, 2, 3, 4, 5, 6, 7];
console.log(arr.shift()); //1返回被移除的项
console.log(arr);//输出值为:(6)[ 2, 3, 4, 5, 6, 7];返回数组
重排序方法
reverse()方法:反转数组项的顺序。
var arr = [1,2,3,4,5];
arr.reverse();
console.log(arr); //5,4,3,2,1
sort()方法:排序
var arr = [5,8,4,6,9]
console.log(arr.sort(function (a,b){
return a-b // 升序
})) // 输出值为 (5) [4, 5, 6, 8, 9];
console.log(arr.sort(function (a,b){
return b-a // 降序
})) // 输出值为 (5) [9, 8, 6, 5, 4]
操作方法
concat:连接两个或几个数组,返回值为连接后新的数组。
var arr1 = [1,2];
var arr2 = [3,4,5];
var arr3 = arr1.concat(arr2); //// 输出值为:(5) [1, 2, 3, 4,5]
slice(start,end):用于提取或截取数组的某一个部分,返回值为被截取的部分。
括号内的值都为数组的下标,只能从左往右进行截取,返回的值从start开始,结束语end的前一项。如果括号内只有一个值,则返回的值为从开始索引值的项到结束。
var arr = [3,4,5,6,7]
console.log(arr.slice(1,3)) // 输出值为:4,5
console.log(arr.slice(2)) // 输出值为:5,6,7
splice(index,howmany,ele1,ele2,......) 方法用于插入、删除或替换数组的元素
括号内的第一个值为数组的下标,第二个值为个数,后面的值都为要添加的项。
添加:
添加时,返回的值为 [ ]空,被添加的项会被添加在start的前面。
var arr = [1,2,3]
console.log(arr.splice(1,0,4)) // 输出值为:[ ] 空
console.log(arr) // 输出值:(4) [1,4,2,3,]
删除:
删除时,返回的值为被删除的项。
var arr = [1,2,3]
console.log(arr.splice(1,2)) // 输出值为:(2) [2, 3]
console.log(arr) // 输出值:[1]
替换:
替换时,返回的值为被替换掉的项。
var arr = [1,2,3]
console.log(arr.splice(1,1,4)) // 输出值为:[2]
console.log(arr) // 输出值:(3) [1,4,3]
位置方法
1) indexOf() 返回某个指定的字符串值或者某个数组元素值在字符串或者数组中首次出现的位置,找不到返回-1
arr.indexOf( search , index )
search 指的是 要查找的项
index 指的是 从哪个位置开始
var arr = [1,2,3,4,2,5];
console.log( arr.indexOf( 2 ) );//1
console.log( arr.indexOf( 2 , 3 ) );//4
console.log( arr.indexOf( "2" ) );//-1
2) lastIndexOf() 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索
var arr = [1,2,3,4,2,5];
console.log( arr.lastIndexOf( 2 ) );//4
console.log( arr.lastIndexOf( 2 , 3 ) );//1
console.log( arr.lastIndexOf( "2" ) );//-1
迭代方法
1)Array.for Each 从头到尾遍历数组,没有返回值
第一个参数:元素
第二个元素:下标
第三个元素:原数组
var arr = [1,2,3,4,5,4,3,2,1];
var newarr = arr.forEach(function(item,index,arry){
console.log(newarr);//undefined
})
2)Array.map();(映射)
对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var arr = [1,2,3,4,5,4,3,2,1];
var newarr = arr.map(function(item,index,arry){
return item*2
})
console.log(newarr);//2, 4, 6, 8, 10, 8, 6, 4, 2
3)Array.filter()
对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组。
return条件://元素是否满足定义的条件
var arr = [1,2,3,4,5,4,3,2,1];
var newarr = arr.filter(function(item,index,arry){
return item>2
})
console.log(newarr);//,3,4,5,4,3
4)Array.every()和Array.some()
every():每一项都返回true,则返回true
some():有一项返回true,则返回true