(1)创建数组
//Array构造函数
var arr = new Array();
arr[0]='red';
arr[1]='blue';
arr[2]='green';
//数组字面量表示法
var arr = ['red','blue','yellow'];
arr[99] = 'orange';
console.log(arr.length);//100
(2)添加新项
arr[arr.length] = 'pink'
(3)设置长度
arr.length = 5
(4)检测数组
instanceof
if(arr instanceof Array){
console.log("是数组");
}
if(Array.isArray(arr)){
console.log("是数组");
}
(5)转换方法
toString、valueOf、toLocaleString、join
arr.toString() //返回数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串
arr.valueOf() //返回的还是数组
arr.toLocaleString() //返回逗号隔开的字符型,与toString()有区别(具体的还不懂)
arr.join("||") //自定义分割符组成的字符型
(6)栈方法(后进先出)
push、pop
var arr = new Array();
arr.push('1',2,'3',4) //在数组末尾添加新项
var item = arr.pop() //取得最后一项后并移除了
console.log(item); //4
arr.pop() //又再移除最后一项
console.log(arr); // ['1', 2]
(7)队列方法(先进先出)
unshift、shift
var arr = new Array();
arr.unshift('1',2,'3',4) //在数组前端添加任意项
arr.shift() //移除数组第一项
(8)重排序方法
reverse、sort
var values = [5,4,3,2,1]
console.log(values.reverse()); //反转数组
console.log(values.sort()); //降序排序
(9)操作方法
concat 、slice、splice
concat()方法:(合并成一维数组)基于当前数组中的所有项创建一个新数组,将参数添加到数组后面并返回新的数组,不影响原数组
var array = [1,2,3]
var newarr = array.concat(4,5,6,['red',true])// [1, 2, 3, 4, 5, 6, 'red', true]
slice(起始,结束)方法:(切片)基于当前数组创建新数组,不会影响原数组
var array = ['a','b','c','d','e']
var newarr = array.slice(1,3) //['b', 'c'] 截取1到3(不包括3)的项
var newarr1 = array.slice(1) //['b', 'c', 'd', 'e'] 从1开始截取
splice()修改原数组
//删除:splice(起始位置,要删除的项数)
var array5 = [0,1,2,3,4,5,6,7]
array5.splice(1,4) //[0, 5, 6, 7]
//插入:splice(起始位置,0,要插入的项)
var array3 = [0,1,2,3,4,5,6,7]
array3.splice(1,0,'red') // [0, 'red', 1, 2, 3, 4, 5, 6, 7]
//替换:splice(起始位置,要删除的项数,要替换的项)
var array4 = [0,1,2,3,4,5,6,7]
array4.splice(1,4,'1','2','3','4')// [0, '1', '2', '3', '4', 5, 6, 7]
(9)位置方法
indexOf 、lastIndexOf
indexOf ()是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后查)
var str="ABCDEFGABCDEFG";
str.indexOf('C'); //2 从前往后出现的第一个C的索引是2
str.indexOf("C",5 ); //9 从第5个开始,第一个出现是C的索引是5
lastIndexOf () 是从右向左查某个指定的字符串在字符串中最后一次出现的位置(也就是从后往前查)
str.lastIndexOf('C'); //9 从后往前出现的第一个C的索引是9
str.lastIndexOf("C", 5); //9 从倒数第5个开始,第一个出现是C的索引是2
(10)归并方法
reduce、reduceRight
reduce()从数组的第一项开始,逐个遍历到最后
var array = [1,2,3,4,5]
var sum = array.reduce((prev,cur,index,array)=>{
console.log(prev,cur,index,array);
return prev+cur
});
console.log(sum);
//1 2 1 (5) [1, 2, 3, 4, 5]
// 3 3 2 (5) [1, 2, 3, 4, 5]
// 6 4 3 (5) [1, 2, 3, 4, 5]
// 10 5 4 (5) [1, 2, 3, 4, 5]
// 15
reduceRight(从数组的最后一项开始,向前遍历到第一项
var array = [1,2,3,4,5]
var sum = array.reduceRight((prev,cur,index,array)=>{
console.log(prev,cur,index,array);
return prev+cur
});
console.log(sum);
// 5 4 3 (5) [1, 2, 3, 4, 5]
// 9 3 2 (5) [1, 2, 3, 4, 5]
// 12 2 1 (5) [1, 2, 3, 4, 5]
// 14 1 0 (5) [1, 2, 3, 4, 5]
// 15