js中数组是一个特殊的对象,索引是它的属性,整数索引在内部被转化为字符串类型。
1 数组的创建
new关键字方法:var arr=new Array()
var arr=new Array(10); console.log(arr.length); //10 var arr=new Array(1,2,3); console.log(arr.length); //3
字面量方法:var arr=[]
var arr=[]; console.log(arr.length); //0 var arr=[1,2,3];
推荐使用字面量方法创建数组。
2 属性
长度属性 length
3 方法
3.1 对元素的添加删除
push():在数组末尾添加一个元素。返回值为新数组长度。
var arr=[1,2,3]; arr.push(4); console.log(arr); // [1,2,3,4]
pop(): 删除数组末尾元素并将其返回。
var arr=[1,2,3]; arr.pop(); console.log(arr); //[1,2]
unshift():在数组开头添加元素。返回值为新数组长度。
var arr=[1,2,3]; arr.unshift(0); console.log(arr); // [0,1,2,3]
shift():删除数组的第一个元素并将其返回。
var arr=[0,1,2,3]; arr.shift(); console.log(arr); //[1,2,3]
splice():
splice(start,len,i1,i2...):将i1,12...插入从start开始的len个元素的位置。
var arr=[0,1,2,3]; arr.splice(1,2,0,0); console.log(arr);// [0, 0, 0, 3]
var arr=[0,1,2,3]; arr.splice(1,2,0); console.log(arr); // [0, 0, 3]
splice(start,len):从start开始删除len个元素。
var arr=[0,1,2,3]; arr.splice(1,2); console.log(arr);// [0, 3]
concat():在数组后插入新元素构成新数组。
var arr=[0,1,2,3]; var newarr= arr.concat(1,2); console.log(newarr);// [0, 1, 2, 3, 1, 2]
3.2 查找
indexof():
从数组开头开始查找参数元素,返回参数元素的索引,若元素不存在,返回-1。
lastindexof():
从数组最后一个元素开始查找。
3.3 转化为字符串
toString()
join()
3.4 排序
reverse():反序
sort(): 按字母表顺序为字符串排序。
var arr=['a',10,'c',3]; console.log(arr.sort());// [10, 3, "a", "c"]
sort()可接收一个函数作为参数执行函数中的排序方法。
函数接收两个参数,若返回值为正数,则在数组中交换这两个数的顺序,否则不交换。下面为两种用sort实现从小到大排序的方法:
function compare(a,b){ return a-b; } var arr=[1,20,3,10]; console.log(arr.sort(compare)); // [1, 3, 10, 20]
function compare(a,b){ if (a>b) return 1; if (a<b) return -1; } var arr=[1,20,3,10]; console.log(arr.sort(compare)); //[1, 3, 10, 20]
3.5 迭代器
forEach()
对数组中每一个元素使用参数函数。
every()
参数函数返回值为布尔型,若对所有元素作用该函数返回值为true,则方法返回true。
some()
参数函数返回值为布尔型,若对有一个元素元素作用该函数返回值为true,则方法返回true。
reduce()
对累加值和后一元素调用参数函数,返回最终累加值。
reduceRight()
从右向左累加。
map()
对每个元素使用参数函数,返回结果所构成的数组。
filter()
要求参数函数返回值为布尔型,方法返回结果为true的元素所构成的数组。
4 判断数组
typeof作用于数组返回object
数组的constructor属性返回值为Array