javascript 数组方法属性总结

时间:2021-05-07 19:03:43

javascript数组方法总结

javascript的数组方法有哪些,只需要 新建一个数组对象,输出数组,在原型方法中我们可以看到一个列表如下:
javascript  数组方法属性总结
这里面就列举里所有的数组方法。

concat

连接两个或多个 数组,(参数不限于数组 ,也可以是一个变量)
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

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

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。

var bool = [32, 33, 16, 40].every(function(a){
return a>20;
});
console.log(bool);
//false
//只有数组所有的成员都大于20时才会返回true

some

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。

filter

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

var arr = [32, 33, 16, 40].filter(function(a){
return a>20;
});
console.log(arr);
//[32,33,40] 得到原数组大于20的元素

forEach

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() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
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

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

这四个方法可以简单的实现队列和栈的功能
pop 从数组尾部移除一个元素,数组长度减一 无参数
push 从数组尾部添加一个元素,数组长度加一 参数为添加的元素
shift 从数组头部移除一个元素,数组长度减一 无参数
unshift 从数组头部添加一个元素,数组长度加一 参数为添加的元素

indexOf lastIndexOf

indexOf() 和字符串中的indexOf 方法一致,只不过是在数组中查找字符串,
indexOf(arg1,arg2)
arg1 第一个参数为需要查找的字符串
arg2 第二个参数可选 ,表示从第几个元素查找
返回值为 arg1的数组下标 ,没有找到返回 -1 ;
lastindexOf 是从数组尾部开始查找 。

reduce reduceRight

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

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]

slice

截取数组
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

join() 方法用于把数组中的所有元素转换一个字符串。
元素是通过指定的分隔符进行分隔的。

[1,2,3,4,5].join("");//"12345"
[1,2,3,4,5].join("-");//"1-2-3-4-5"

toString

toString() 方法可把数组转换为字符串,并返回结果。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();//"Banana,Orange,Apple,Mango"

valueOf

这个方法都在使用,但知道的人知之甚少。

arr=[1,2,3,4];
console.log(arr);//系统默认调用了valueOf 方法

数组属性

length

返回数组长度

constructor

返回创建数组对象的原型函数

prototype

数组对象的原型 ,通过这个可以重写系统的方法 ,或者添加属性和方法

ECMA 6添加的方法

阮一峰ES6的入门 有关于数组的扩展

对 ES6感兴趣的 ,可以完整的学习一下。