js数组方法大全

1、Array.concat(value, ...)

*描述:拼接数组
参数:接受任意个;
返回值:新数组,包含array的元素以及拼接的新元素

var arr = [1, 2, 3, 4];
console.log(arr.concat(5, [6, 7], 8));  // [1, 2, 3, 4, 5, 6, 7, 8]
2、Array.every(predicate, 0)

*描述:测试断言函数是否对每个元素为真
参数:
predicate: 用来测试数组元素的断言函数,predicate([i], i, arrya),返回值会当做布尔值解析。true和所有真值表示该数组用过了测试或者说满足该函数所描述的条件;
o: 调用predicate时的可选this值。
返回值:如果对array的每一个元素调用predicate时都返回真值,则返回true。如果有任何一个元素调用predicate时返回假值,则返回false。范例空数组是返回true。

[1, 2, 3].every(function (x) {
    return x < 5;  // true, 所有元素都 < 5
});
[1, 2, 3].every(function (x) {
    return  x < 3; // false, 不是所有元素都 < 3
});
[].every(function (x) {
    return false;  // true, []总是返回true
});
3、Array.filter(predicate, o)

*描述: 返回通过断言的数组元素
参数:
predicate:用来判断array中的元素是否需要包含在返回数组中的调用函数,predicate([i], i, arrya),如果返回真值,则array中序列好为i的元素会追加到新创建的数组中。
o:调用predicate时的可选this值。
返回值:新数组,只包含那些让predicate返回真值的数组元素。

[1, 2, 3, 4].filter(function (x) {
    return x > 1;
});  // [2, 3, 4]
4、Array.forEach(f, o)

*描述:为每一个数组元素调用一个函数
参数:
f:为array的每一个元素调用的函数,f([i], i, array);
o:调用f时的可选this值。
返回值:无返回值

var arr = [1, 2, 3];
arr.forEach(function (x, i, arr) {
    arr[i]++;  // arr现在是[2, 3, 4]
});
5、Array.indexOf(value, start)

*描述:查找数组
参数:
value: 要在array中查找的值;
start: 开始查找的可选数组序号。省略则为0。
返回值:一个大于等于start的最小序号值,该序号值处的array元素与value全等。如果不存在匹配元素时,则返回-1。

['a', 'b', 'c'].indexOf('b')  // 1
['a', 'b', 'c'].indexOf('d')  // -1
['a', 'b', 'c'].indexOf('a', 1) // -1
6、Array.lastIndexOf(value, start)

*描述:反向查找数组
参数:
value:要在array中查找的值;
start:开始查找的可选数组序号,省略则从最后一个元素开始查找。
返回值:一个小于start的最大序列号值,该序号值处的array元素与value全等,如果不存在匹配元素时,则返回-1。

7、Array.join(separator)

*描述:将数组元素拼接为字符串
参数:
separator:在返回的字符串中,用来分隔数组的某个元素与下一个元素的可选字符或字符串。如果省略默认是英文逗号(,)。
返回值: 字符串,将array的每一个元素转化为字符串,然后用separator字符串分隔开,最后拼接返回的字符串。

var arr = [1, 2, 3, 'testing'];
var str = arr.join('+');  // '1+2+3+testing'
8、Array.map(f, o)

*描述:从数组元素中计算新值
参数:
f:为array的每一个元素调用的函数。f(arr[i], i, arr),它的返回值会成为返回数组的元素。
o:f调用时的可选this值。
返回值:新数组,由函数f计算出的元素组成。

[1, 2, 3].map(function (x) {
    return x*x;
});  // [1, 4, 9]
9、Array.pop()

*描述:移除并返回数组的最后一个元素
参数: 无
返回值:array的最后一个元素

var stack = [];  // stack: []
stack.push(1, 2);  // stack: [1, 2]    返回2
stack.pop();  // stack: [1]  返回2
stack.push(4, 5);  // stack: [1, [4, 5]]  2
stack.pop();  // stack: [1]  返回[4, 5]
stack.pop();  // stack: []  返回1
10、Array.push(value, ...)

*描述:给数组追加元素
参数:
value, ...:追加到array尾部的一个或多个值。
返回值:把指定值追加到数组后数组的新长度。(参数前一个示例:)

11、Array.reduce(f, initial)

*描述:从数组元素中计算出一个值
参数:
f:一个函数,可以合并两个值(比如两个数组元素),并返回一个‘缩减’的新值。
initial:用来缩减数组的可选初始值。如果指定该参数,reduce()的行为会像是把该参数插入array的头部一样。
返回值:数组的化简值,该值是最后一次调用f时的返回值。

[1, 2, 3, 4].reduce(function (x, y) {
    return x * y;
});  // 24: ((1*2)*3)*4
12、Array.reduceRight(f, initial)

*描述:从右到左缩减数组
参数:
f:一个函数,可以合并两个值(比如两个数组元素),并返回一个‘缩减’的新值。
o:用来缩减数组的可选初始值。如果指定该函数,reduceRight()的行为会像是把该参数插入array的尾部一样。
返回值:数组的缩减值,该值是最后一次调用f时的返回值。

[2, 10, 60].reduceRight(function (x, y) {
    return x/y;
});  // 3: (60/10)/2
13、Array.reverse()

*描述:颠倒数组中的元素顺序
参数:无
返回值: 无

var arr = [1, 2, 3, 4];
arr.reverse();  // [4, 3, 2, 1]
14、Array.shift()

*描述:移除数组的第一个元素
参数: 无
返回值: 数组原来的第一个元素

var arr = [1, [2, 3], 4];
arr.shift(); // 返回1;  arr = [[2, 3], 4]
arr.shift();  // 返回[2, 3]; arr = [4]
15、Array.slice(start, end)

*描述:返回数组的一部分
参数:
start:数组片段开始处的数组序号。如果为负数,则表示从数组的尾部开始计算。即:-1代表最后一个元素,-2代表倒数第二个元素,以此类推。
end:数组片段结束处的后一个元素的舒祖华序号。如果没有指定,该片段会包含start开始到数组尾部的所有数组元素。如果为负数,则表示从数组的尾部开始计算。
返回值:新数组,包含array中从start一直到end之间的所有元素(包含start指定的元素,但不包含end指定的元素)。

var arr = [1, 2, 3, 4, 5];
arr.slice(0, 3); // [1, 2, 3]
arr.slice(3); // [4, 5]
arr.slice(1, -1); // [2, 3, 4]
arr.slice(-3, -2); // [3]
16、Array.some(predicate, o)

*描述:测试是否有元素满足断言函数
参数:
predicate:用来测试数组元素的断言函数
o:调用predicate时的可选this值。
返回值:如果array中有至少一个元素调用predicate时返回真值,则返回true。如果所有元素调用predicate时都返回假值,则返回false。

[1, 2, 3].some(function (x) {
    return x > 5;
});  // false,没有元素 > 5
[1, 2, 3].some(function (x) {
    return x > 2;
}); // true, 有些元素 > 2
[].some(function (x) {
    return false;
});  // false, []总是返回false
17、Array.sort(orderfunc)

*描述:对数组元素进行排序
参数:
orderfunc:用来指定如何排序的可选函数
返回值:该数组的引用。注意实在原数组中进行排序,没有新建数组。

arr = [33, 4, 1111, 222];
arr.sort();  // 1111, 222, 33, 4
arr.sort(function (a, b) {
    return a - b;
}); // 4, 33, 222, 4444
18、Array.splice(start, deleteCount, value, ...)

*描述:插入、删除或替换数组元素
参数:
start:开始插入和(或)删除处的数组元素的序号。
deleteCount:要删除的元素个数,从start开始,并包含start处的元素。如果指定为0,表示插入元素,而不用删除任何元素。
value, ...:要插入数组中的零个或多个值,从start序号处开始插入。
返回值:如果从array中删除了元素,则返回一个新数组,包含这些删除的元素。

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
arr.splice(1, 2);   // [2, 3]
19、Array.unshift(value, ...)

*描述:在数组头部插入元素
参数:
value, ...:要插入array头部的一个或多个值
返回值:数组的新长度

var arr = [];
arr.unshift(1); // 1
arr.unshift(22);  //2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容