数组操作方法

  • 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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