JavaScript 数组方法

  • 1.join() 将数组中的所有元素转化为字符串并连接在一起
var a=[1,2,3,4];
a.join(); //"1,2,3,4"
  • 2.reverser() 将数组中的元素颠倒顺序,返回逆序的数组。
var a[1,2,3,4];
a.reverse(); //[4,3,2,1]
  • 3.sort() 将数组中的元素排序并返回排序后的数组。
    当不带参数调用sort()时,数组元素以字母表顺序排序。
var a=['ant','Bug','cat','Dog'];
a.sort(); //["Bug", "Dog", "ant", "cat"]

a.sort(function(s,t){
   var s1=s.toLowerCase();
   var t1=t.toLowerCase();
   if(s1<t1) return -1;
   if(s1>t1) return 1;
   return 0
});//["ant", "BUg", "cat", "Dog"]
  • 4.concat() 创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数。如果这些参数中的任何一个自身是数组,则连接的是数组元素,而非数组本身。
var a=[1,2,3];
a.concat(4,5);// [1, 2, 3, 4, 5]
a.concat([4,5]);// [1, 2, 3, 4, 5]
a.concat([4,5],[6,7]);// [1, 2, 3, 4, 5, 6, 7]
a.concat([4,5],[6,[8,7]]);// [1, 2, 3, 4, 5, 6,[8,7]]
  • 5.slice() 返回指定数组的一个片段或子数组。它的两个参数分别指定了片段的开始和结束的位置。返回的数组包含第一个参数指定的位置和所有到但不含第二个参数指定的位置之间的所有数据元素。
    如果只指定一个参数,返回的数组包含从开始位置到数组结尾的所有元素。
    如果参数中出现负数,它表示相对于数组中最后一个元素的位置。例如:参数-1指定了最后一个元素,而-3指定了倒数第三个元素。
    注意,slice()不会修改调用的数组。
var a=[1,2,3,4,5];
a.slice(0,2);//[1, 2]
a.slice(3);//[4, 5]
a.slice(1,-1);//[2, 3, 4]
a.slice(-3,-2);//[3]
  • 6.splice() 在数组中插入或删除元素的通用方法。不同于slice()和concat(),splice()会修改调用的数组。注意:splice()和slice()拥有非常相似的名字,但它们的功能却又本质的区别。
    splice()能够从数组中删除元素,插入元素到数组中或者同事完成这两种操作。在插入或删除点之后的数组元素会根据需要增加或减小它们的索引值,因此数组的其他部分仍然保持连续。splice()的第一个参数指定了插入和(或)删除的起始位置。第二个参数指定了应该从数组中删除的元素的个数,如果省略第二个参数,从起始点开始到数组结尾的所有元素都将被删除。splice()返回一个由删除元素组成的数组,或者如果没有删除元素就返回一个空数组。
var a=[1,2,3,4,5,6,7,8];
a.splice(4);//返回[[5, 6, 7, 8]],a是[1, 2, 3, 4]
a.splice(1,2)//返回[2, 3],a是[1, 4, 5, 6, 7, 8]
a.splice(1,1);//返回[2],a是 [1, 3, 4, 5, 6, 7, 8]
  • 7.push()和pop()
    push()向数组尾部添加一个或多个元素。
    pop()删除数组的最后一个元素。

  • 8.unshift()和shift()
    unshift()向数组头部添加一个或多个元素。
    shift()删除数组的第一个元素。

  • 9.toString()和toLocaleString()

[1,2,3].toString();//"1,2,3"
[1,[2,'c']].toString();//"1,2,c"

toLocaleString()是toString()方法的本地化版本。它调用元素的toLocaleString()方法将每个数组元素转换为字符串,并使用本地化分隔符将这些字符串连接起来生成最终的字符串。

  • 10.forEach()从头至尾遍历数组,为每个元素调用指定的函数。
    传递的函数做为forEach()的第一个参数,然后forEach()使用三个参数调用该函数:数组元素,元素的索引和数组的本身。
var data=[1,2,3,4,5];
//计算数组元素的和值
var sum=0;
data.forEach(function(value){
sum+=value
});  
sum //15

//每个数组元素的值加1
data.forEach(function(value,index,arr){
arr[index]=value+1;
});
data  //[2, 3, 4, 5, 6]
  • 11.map()将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含函数的返回值。
    注意:传递给mao()的函数应该有返回值。map()返回的是新数组,不修改原来的数组。如果原来的数组是稀疏数组,返回的也是相同方式的稀疏数组,它们具有相同的长度,相同的缺失元素。
var a=[1,2,3];
var b=a.map(function(value){
return value*value;
});
b// [1, 4, 9]
  • 12 filter()返回符合条件的数组元素
var a=[1,2,3,5];
var b=a.filter(function(value){
return value>2;
});
b  // [3, 5]
  • 13.every()和some()
    数组的逻辑判定,它们对数组元素应用指定的函数进行判定,返回true或false。
    every()即数组中所有元素都符合筛选条件,则返回true.
    some()即数组中存在元素符合筛选条件,则返回true;
var a =[1,2,3,4,5];
a.every(function(value){
return value<10;
})  //true a中所有元素都小于10

a.every(function(value){
return value%2===0;
});//false a中不是所有元素都是偶数

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