数组操作方法

  • shift:
    删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined。
var a = [1,2,3,4,5];
var b = a.shift();
// a = [2,3,4,5] ;b = 1
  • unshift
    将参数添加到原数组头部,并返回数组的长度。
var a = [1,2,3,4,5]
var b = a.unshift(-1,0)
// a = [-1,0,1,2,3,4,5];b = 7
  • pop
    删除数组最后一项,并返回删除元素的值;如果数组为空返回undefined。
var a = [1,2,3,4,5]
var b = a.pop()
a = [1,2,3,4];b = 5
  • push
    将参数添加到原数组末尾,并返回数组的长度。
var  a = [1,2,3,4,5]
var b = a.push(6,7)
// a = [1,2,3,4,5,6,7];b = 7
  • concat
    返回一个新数组,是将参数添加到原数组后面中构成的,原数组不变。
var a = [1,2,3,4,5];
var b = a.concat(6,7);
// a = [1,2,3,4,5];b = [1,2,3,4,5,6,7]
  • splice(start,deleteCount,val1,val2,...)
    从start位置开始删除deleteCount项,并从该位置其插入val1,val2,...,并返回删除的数组。
var a = [1,2,3,4,5];
var b = a.splice(2,2,6,7,8);// a = [1,2,6,7,8,5];b = [3,4]
var a = [1,2,3,4,5];
var b = a.splice(0,1); //作用同shift
var a = [1,2,3,4,5];
var b = a.splice(0,0,-1,0);// a = [-1,0,1,2,3,4,5];b = []
var a = [1,2,3,4,5];
var b = a.splice(a.length-1,1);//a = [1,2,3,4];b=[5]
var a = [1,2,3,4,5];
var b = a.splice(a.length,0,6,7);//a = [1,2,3,4,5,6,7];b = []

  • reverse
    将数组反序
var a = [1,2,3,4,5]
var b = a.reverse();
// a = [5,4,3,2,1];b = [5,4,3,2,1]
  • sort(orderfunction)
    按指定的参数对数组进行排序,数组在原数组上进行排序,不生成副本。
    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
    若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    若 a 等于 b,则返回 0。
    若 a 大于 b,则返回一个大于 0 的值。
var a = [33,4,111,222];
a.sort();//[111,222,33,4]
a.sort(function(a,b){
  return a - b;
});// 4,33,111,222
a.sort(function(a,b){
  return b - a;
});// 222,111,33,4

var a = ['ant','Bug','cat','Dog'];
a.sort();// ["Bug", "Dog", "ant", "cat"];
a.sort(function(s,t){
  var a = s.toLowerCase();
  var b = t.toLowerCase();
  if (a < b) return -1;
  if (a > b) return 1;
  return 0;
})// ["ant", "Bug", "cat", "Dog"]
  • slice(start,end)
    返回原数组中指定开始下标到结束下标的项组成的新数组。
var a = [1,2,3,4,5]
var b = a.slice(2,5);
//a = [1,2,3,4,5];b = [3,4,5]
  • join(separator)
    将数组的元素组合成一个字符串,以separator为分隔符,省略的话默认用逗号为分隔符
var a = [1,2,3,4,5]
var b = a.join("|")
// a = [1,2,3,4,5];b = "1|2|3|4|5"
  • toString()
    将每个元素转化为字符串,与不带任何参数的join()方法返回的字符串一样。
[1,2,3].toString();//"1,2,3"
['a','b','c'].toString();//"a,b,c"
[1,[2,'c']].toString();//"1,2,c"

ES5中新增的9种方法:forEach()、map()、every()、some()、reduce()、reduceRight()、indexOf()和lastIndexOf()。
ES5中新增的Array方法详细说明-张鑫旭

  • forEach()
    对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
var a = [1,2,3,4,5]
a.forEach(function(value{
  sum += value;
})
  • map()
    map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该数组的返回值。
var a = [1,2,3]
var b = a.map(function(x) {return x*x;})// [1,4,9]
  • filter()
    map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该数组的返回值。
var a = [1,2,3,4,5]
var smallvalues = a.filter(function(x){return x < 3}) // [2,1]
  • every()和some()
    every()和some()方法是数组的逻辑判定:它们对数组元素应用指定的函数进行判定,返回true或false。som()在判定函数第一次返回true后就停止遍历,并返回true。every在判定false后就停止判定,返回false。
var a = [1,2,3,4,5]
a.every(function(x){return x < 10}) // true
a.every(function(x){return x % 2 ===0 }) // false
a.some(function(x){return x % 2 ===0 }) // true

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

推荐阅读更多精彩内容

  • 第三章 类型、值和变量 1、存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象,它只是偶尔用来区分字符串值...
    坤少卡卡阅读 641评论 0 1
  • 由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaS...
    2bc5f46e925b阅读 1,982评论 0 16
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,237评论 0 4
  • join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。可以指...
    lidroid本人阅读 550评论 0 3
  • 今早给妈妈打电话,说是姥爷病好像严重了,心里捏了一把汗,正好朋友圈看见分享了一篇关于死亡质量的文章,加上最...
    尊的小世界阅读 603评论 0 0