资讯专栏INFORMATION COLUMN

js数组常用方法

developerworks / 535人阅读

摘要:示例的前两个参数指定了需要删除的数组元素。如果只关心数组元素的值,可以只传一个值。示例返回的是新数组它不修改调用的数组方法返回的数组元素是调用的数组的一个子集。

join

Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。可以指定一个可选的字符串在生成的字符串中来分隔数组的各个元素。如果不指定分隔符,默认使用逗号。示例:

var a = [1,2,3]
console.log(a.join()) //1,2,3
console.log(a.join(" ")) //1 2 3
console.log(a.join(""))//123
reverse

Array.reverse()方法将数组中的元素颠倒顺序,返回逆序的数组。它采取了替换;即在原先的数组中重新排列它们。示例:

var a = [1,2,3]
console.log(a.reverse().join()) //3,2,1
sort

Array.sort()方法将数组中的元素排序并返回排序后的数组。当不带参数调用sort()时,数组元素以字母表顺序排序(如有必要将临时转化为字符串进行比较):

var a = ["d","b","c"]
console.log(a.sort().join()) //b,c,d

如果数组包含undefined元素,将会被安排到数组的尾部。
sort方法可以传一个比较函数用于非字母排序,该函数接收两个参数,假设第一个参数应该在前,比较函数应该返回一个小于0的数值,反之,第一个参数在后,返回一个大于0的数值,示例:

var a = [3,26,5,2]
a.sort(function (a,b) {
  if (a
concat

Array.concat()方法创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数。如果参数中的任何一个自身是数组,则连接的是数组的元素,而非数组本身,concat()不会递归扁平化数组,也不会修改调用数组。示例:

var a = [1,2,3]
console.log(a.concat(4, 5)) // [ 1, 2, 3, 4, 5 ]
console.log(a.concat([4, 5])) // [ 1, 2, 3, 4, 5 ]
slice

Array.slice()方法返回指定数组的一个片段或子数组。它的两个参数分别指定了片段的开始和结束的位置。返回的数组包含第一个参数位置但不含第二个参数位置之间的元素,如果只有一个参数,则返回开始位置到数组结尾的所有元素。如参数中出现负数,表示相对于数组中最后一个元素的位置。示例:

var a = [1,2,3,4]
console.log(a.slice(0,2)) //[1, 2]
console.log(a.slice(2)) //[3, 4]
console.log(a.slice(-2,-1)) //[3]
splice

Array.splice()方法是在数组中插入或删除元素的方法,会修改调用的数组。
第一个参数指定了插入或删除的起始位置。第二个参数指定了应该从数组中删除的元素个数。如果省略第二个参数,从起点开始到数组结尾的所有元素都将被删除。splice()返回一个由删除元素组成的数组。示例:

var a = [1,2,3,4]
console.log(a.splice(3)) // [4]
console.log(a.splice(1,2)) // [2, 3]

splice()的前两个参数指定了需要删除的数组元素。紧随其后的任意个数的参数指定了需要插入到数组中的元素,从第一个参数指定的位置开始插入。例如:

var a = [1,2,3,4]
a.splice(2,0,"a","b")
console.log(a) // [ 1, 2, "a", "b", 3, 4 ]
a.splice(2,2,[1,2],3)
console.log(a) // [ 1, 2, [ 1, 2 ], 3, 3, 4 ]
push和pop

push()和pop()方法允许将数组当作栈来使用。push()方法在数组的尾部添加一个或多个元素,并返回数组新的长度。pop()方法则相反:它删除数组的最后一个元素,减小数组长度并返回删除的值。两个方法都修改并替换原始数组而非生成一个修改版的新数组。示例:

var a = [1,2,3,4]
a.push(5)
console.log(a) //[ 1, 2, 3, 4, 5 ]
a.pop()
console.log(a) //[ 1, 2, 3, 4 ]
unshift和shift

unshift()和shift()方法的行为非常类似于push()和pop(),不一样的是shift和unshift对数组的第一个元素进行删除和插入操作

var a = []
a.unshift(2)
console.log(a) //[2]
a.unshift(3)
console.log(a) //[3,2]
a.shift()
console.log(a) //[2]
forEach

forEach()方法从头到尾遍历数组,为每个元素调用指定的函数,该函数接收三个值:数组元素、元素的索引、和数组本身。如果只关心数组元素的值,可以只传一个值。示例:

var a = [1,2,3,4]
var sum = 0;
a.forEach(function (val) {
  sum += val
})
console.log(sum) //10
a.forEach(function (v, i, s) {
  s[i] = v + 1
})
console.log(a) //[ 2, 3, 4, 5 ]
map

map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。示例:

var a = [1,2,3,4]
b = a.map(function (val) {
  return val * val
})
console.log(b) //[ 1, 4, 9, 16 ]

Tips: map()返回的是新数组:它不修改调用的数组

filter

filter()方法返回的数组元素是调用的数组的一个子集。传递的函数是用来逻辑判定的,函数如果返回值是true,那么传递给判定函数的元素就是这个子集的成员。示例:

var a = [1,2,3,4]
var b = a.filter(function (x) {
  return x<3
})
console.log(b) //[1, 2]
every和some

every()和some()方法是数组的逻辑判定:它们对数组元素应用指定的函数进行判定,返回true和false
every()方法当且仅当数组中的所有元素调用判定函数都返回true,才返回true:

var a = [1,2,3,4]
console.log(
  a.every(function (x) {
  return x < 5
})) //true

some()方法当数组中至少有一个元素判定函数返回true,它就返回true;并且当且仅当数组中的所有元素调用判定函数都返回false,才返回false

var a = [1,2,3,4]
console.log(
  a.some(function (x) {
  return x < 2
})) //true
console.log(a.some(isNaN)) //false

Tips:一旦every()和some()确认该返回什么值时它们就会停止遍历元素

reduce和reduceRight

reduce()和reduceRight()方法使用指定的函数将元素进行组合,生成单个值。可以称为“注入”和“折叠”。示例:

var a = [1,2,3,4]
var sum = a.reduce(function (x, y) {
  return x+y
},3)
console.log(sum) //13
var max = a.reduce(function (x,y) {
  return (x>y)?x:y
})
console.log(max) //4

reduce()需要两个参数。第一个执行化简操作的函数。化简函数的任务就是用某种方法把两个值组合或化简为一个值,并返回化简后的值。
在空数组上,不带初始值参数调用reduce()将导致类型错误异常。如果调用它的时候只有一个值,数组只有一个元素并且没有指定初始值,或者有一个空数组并且指定一个初始值,reduce()只是简单地返回那个值而不会调用简化函数。
reduceRight()的工作原理和reduce()一样,不同的是它按照数组索引从高到底(从右到左)处理数组,而不是从低到高

indexOf和lastIndexOf

indexOf()和lastIndexOf()搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没有找到就返回-1。indexOf()从头到尾搜索,而lastIndexOf()则反向搜索。示例:

var a = [0,1,2,1,0]
console.log(a.indexOf(1)) //1
console.log(a.lastIndexOf(1)) //3
console.log(a.indexOf(3)) //-1

indexOf()和lastIndexOf()方法不接收一个函数作为其参数,第一个参数是需要搜索的值,第二个参数是可选的:它指定数组的一个索引,从指定位置开始搜索。如果省略该参数,indexOf()从头开始搜索,而lastIndexOf()从末尾开始搜索。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88822.html

相关文章

  • js数组常用方法总结

    摘要:在为的位置,删除个元素,插入删了为的元素,替换为删了为的元素数组的增删改都可以用完成返回从原数组中指定开始下标到结束下标之间的项组成的新数组该方法不会改变原始数组。不传值表示克隆了除了正常用法,经常用来将对象转换为。 js 中数组的常用方法总结 arr.fill(a);//所有子元素 都改为 a; [{a: 1},{b: 2}, ...Array(8).fill({}, 0)] //...

    luckyw 评论0 收藏0
  • JS内置对象-Array数组对象的一些常用方法区分

    摘要:语法添加删除项目的位置要删除的项目数量要添加的第一个元素第二个第三个返回值被删除的项目,如果有的话其中,第二个参数如果设置为,则不会删除任何项目。 第一篇篇幅太长了,自己回顾都觉得有点伤神。。以后尽量多篇少字~ 首先简单介绍Array数组对象 什么是数组: 用单独的变量名存储一系列的值 如何创建数组:(有3种方法) 1、常规方式: var gyt=new Array(); gyt[0...

    zorro 评论0 收藏0
  • js:Array对象常用方法介绍

    摘要:今天就来梳理一下常用的数组方法基础几种基础的就简单介绍一下创建数组括号可以传参,指定数组长度。返回值对数组的引用。如果数组是空的,那么方法将不进行任何操作,返回值。注用于字符串操作时,会调用这一方法将数组自动转换成字符串。 前言 在js中,数组作为一个特殊的对象。是我们常用的数据格式。今天就来梳理一下常用的数组方法. 1.基础 几种基础的就简单介绍一下:创建数组 var arr1 = ...

    phpmatt 评论0 收藏0
  • JS标准库的部分内置对象的常用属性和方法

    摘要:常用的属性和方法创建空创建给对象添加属性给对象添加多个属性给对象添加给对象添加返回属性配置对象返回所有属性名数组返回对象原型对象阻止对象扩展冻结对象密封对象检测是否可扩展布尔值检测是否冻结布尔值检测是否密封布尔值对象原型对象对象实例的属性和 常用Object的属性和方法 创建空Object var o1 = {}; var o2 = Object.create(Object.prot...

    source 评论0 收藏0
  • JS 数组常用API方法和遍历方法总结

    摘要:数组语法功能遍历数组,返回回调返回值组成的新数组,不改变原数组,不会对空数组进行检测语法功能无法,可以用中来停止,不改变原数组语法功能过滤,返回过滤后的数组,不改变原数组,不会对空数组进行检测语法功能有一项返回,则整体为,不改变原数组语法 数组 (array) ES5 * map 语法:[].map(function(item, index, array) {return xxx})功...

    TNFE 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<