创建方式:
var arr = new Array();
-
var arr = [];
(推荐)
判断方式:
value instanceof Array
Array.isArray(value) //常用
转换:
valueOf()
toString() //分割成每个元素组成一个字符串,字符串用逗号(参数)分隔。
toLocaleStrng ()
join() //返回 一个由数组中的值连接起来组成的字符串,连接符为传入的参数,默认为 ,
一 基本方法:
1> pop() 取出最后一个元素 (先进后出),返回值就是数组最后一个元素,而且数组也会改变
2> shift() 取出第一个元素 (先进先出),返回值就是数组第一个元素,而且数组也会改变
3> push() 放入元素 ,返回值为 数组的长度。
4> unshift() 放入元素,与push() 不同的是 新放入的队头,返回值也为数组的长度
5> reverse() 反转数组的顺序
6> sort() 对数字进行排序
这两个重排序方法的返回值是排序完后的数组,同时原数组也会发生改变。
二 操作方法:
1> concat() 参数是字符串或者数组,把他们添加到调用此方法的数组上。返回值是一个新数组。原数组不变
2> slice() 分割数组项从第一个参数开始到第二个参数,返回截取后的新数组,原数组不变。
3> 强大的splice()
1) 删除 两个参数 ,第一个是起始项,第二个是要删除的项数.
2) 插入 至少三个参数,第一个是起始项,第二个是0(删除0项),第三个或者更多是插入的项.
3) 替换 至少是三个参数, 第一个是起始项,第二个是删除的项数,第三个或者更多是插入的项.
返回删除的项,由数组表示,原数组发生改变
**三 位置方法: **
1> indexOf() 第一个参数为要查找的项,第二个是查找的位置索引(可选),返回值为查找项所在位置。
2> lastIndexOf() 从末尾开始查找,功能和indexOf一样。
四 迭代方法:
every(): 对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true
个人理解:就是检查是否数组的每一项都符合函数规定的功能?如果每一项都符合此方法返回true,则返回true,否则返回false。
var arr = [8,21,69,27,6];
var result = arr.every(function(value,index) {
if(value > 5) {
return true;
}else{
return false;
}
});
console.log(result); //true
filter(): 对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组
个人理解:查看数组项中是否有其中一项符合函数规定要求,如果有就返回它,以数组形式返回。
var numbers = [1,2,3,4,,9,12,41,3,2,5,4];
var result = numbers.filter(function(value, index) {
if(value > 2){
return true;
}else{
return false;
}
});
console.log(result); //[3,4,9,12,41,3,5,4]
forEach():对数组中的每一项运行给定函数。这个方法没有返回值
个人理解:功能和for循环操作数组相同。
var numbers = [1,2,3,4,5];
numbers.forEach(function(value, index) {
console.log(value);
});
// 1 2 3 4 5
map(): 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
个人理解:返回对数组每一项操作后的结果,以数组形式显示。
var numbers = [1,2,3,4,5];
var result = numbers.map(function(value, index) {
return value += 1;
});
console.log(result.toString()); //2,3,4,5,6
some(): 对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。
个人理解,如果说every是 && 的特性,那some就是 || 的特性,只要有一个数组项满足函数中的规定返回true,则返回true。
这几个方法都不会改变原数组的值。
五 归并方法
reduce():
reduceRight():