javascript的数组方法有哪些,只需要 新建一个数组对象,输出数组,在原型方法中我们可以看到一个列表如下:
这里面就列举里所有的数组方法。
连接两个或多个 数组,(参数不限于数组 ,也可以是一个变量)
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
document.write(children);
//Cecilie,Lone,Emil,Tobias,Linus,Robin
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
var bool = [32, 33, 16, 40].every(function(a){
return a>20;
});
console.log(bool);
//false
//只有数组所有的成员都大于20时才会返回true
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var arr = [32, 33, 16, 40].filter(function(a){
return a>20;
});
console.log(arr);
//[32,33,40] 得到原数组大于20的元素
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
var arr =[1,2,3,4,5];
testArr = arr.forEach(function(a){
return a*2;
})
console.log(arr);//[1,2,3,4,5];不改变原数组。
console.log(testArr);//undefined,没有返回值。
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
var arr =[1,2,3,4,5];
testArr = arr.forEach(function(a){
return a*2;
})
console.log(arr);//[1,2,3,4,5]不改变原数组。
console.log(testArr);//[2,4,6,8,10]有返回值。
sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序
var arr =[1,5,4,2,3];
arr.sort(function(a,b){
//a,b表示对比的数组成员。
return a-b;
});
console.log(arr);//[1,2,3,4,5]改变原数组。
//不传入参数的话。直接sort 是按照字母升序。
//由于数组中可以是对象,自然可以 retrun a.xx - b.xx 以某一个属性作为排序的依据
这四个方法可以简单的实现队列和栈的功能
pop 从数组尾部移除一个元素,数组长度减一 无参数
push 从数组尾部添加一个元素,数组长度加一 参数为添加的元素
shift 从数组头部移除一个元素,数组长度减一 无参数
unshift 从数组头部添加一个元素,数组长度加一 参数为添加的元素
indexOf() 和字符串中的indexOf 方法一致,只不过是在数组中查找字符串,
indexOf(arg1,arg2)
arg1 第一个参数为需要查找的字符串
arg2 第二个参数可选 ,表示从第几个元素查找
返回值为 arg1的数组下标 ,没有找到返回 -1 ;
lastindexOf 是从数组尾部开始查找 。
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
var arr =[1,5,4,2,3];
var num = arr.reduce(function(a,b){
return a+b;
});
console.log(num);//15数组累加求和
//有时候不想改变原数组但是想得到最大值或最小值
var max = arr.reduce(function(a,b){
//a,b互换一下 就成了求最小值
return a > b?a:b;
});
console.log(max);//5
ruduceRight 和reduce 效果一致,不过是从数组尾部开始计算。
splice(arg1,arg2,arg3,….);
第一个参数表示数组下标,
第二个参数表示从 第一个参数表示的数组下标开始删除多少个元素
[1,2,3,4,5].splice(1,2);
//从数组下标为1的地方开始,删除2个元素,得到[1,4,5]
[1,2,3,4,5].splice(1,2,5,5,4);
//从数组下标为1的地方开始,删除2个元素,并插入三个元素 [1,4,5,5,5,4]
截取数组
arg1 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
arg2 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
[1,2,3,4,5].slice(2,3);//[3,4]
[1,2,3,4,5].slice(2);//[3,4,5]
join() 方法用于把数组中的所有元素转换一个字符串。
元素是通过指定的分隔符进行分隔的。
[1,2,3,4,5].join("");//"12345"
[1,2,3,4,5].join("-");//"1-2-3-4-5"
toString() 方法可把数组转换为字符串,并返回结果。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();//"Banana,Orange,Apple,Mango"
这个方法都在使用,但知道的人知之甚少。
arr=[1,2,3,4];
console.log(arr);//系统默认调用了valueOf 方法
返回数组长度
返回创建数组对象的原型函数
数组对象的原型 ,通过这个可以重写系统的方法 ,或者添加属性和方法
阮一峰ES6的入门 有关于数组的扩展
对 ES6感兴趣的 ,可以完整的学习一下。