数组的常用方法
会改变原数组的方法:**
push() 用于在数组的末端添加一个或多个元素
pop() 方法用于删除数组的最后一个元素,并且返回该元素
shift() 方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组。
unshift()方法用于第一个位置添加元素,并返回添加新元素后的数组长度,也会改变原数组。可以接受多个参数
reverse() 用于颠倒排列数组元素,返回改变后的数组,会改变原数组
splice() 方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素。注意,该方法会改变原数组。
- arr.splice(start, count, addElement1, addElement2, …);
- splice的第一个参数是删除的起始位置(从0开始),第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。
sort() 方法对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变。
sort可以传入一个函数作为参数
上面代码中,sort的参数函数本身接受两个参数,表示进行比较的两个数组成员。如果该函数的返回值大于0,表示第一个成员排在第二个成员后面;其他情况下,都是第一个元素排在第二个元素前面。
其他方法
valueOf() 返回数组本身
toString() 返回数组的字符串形式
join() 以指定参数作为分隔符,将所有数组成员连接为一个字符串返回,如果不提供参数,默认用逗号分隔
concat() 用于多个数组的合并,并将新数组的成员,添加到原数组的后面,返回一个新数组 [ ‘hello’].concat([‘world’]// [“hello”, “world”]
slice()方法用于提取目标数组的一部分,返回一个新数组,原数组不变。 arr.slice(start, end);
- 它的第一个参数为起始位置(从0开始,会包括在返回的新数组之中),第二个参数为终止位置(但该位置的元素本身不包括在内)。如果省略第二个参数,则一直返回到原数组的最后一个成员。
- 如果slice()方法的参数是负数,则表示倒数计算的位置。
map()方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。
forEach()方法与map()方法很相似,也是对数组的所有成员依次执行参数函数。但是,forEach()方法不返回值,只用来操作数据。这就是说,如果数组遍历的目的是为了得到返回值,那么使用map()方法,否则使用forEach()方法。
filter()方法用于过滤数组成员,满足条件的成员组成一个新数组返回。
some方法是只要一个成员的返回值是true,则整个some方法的返回值就是true,否则返回false。
every方法是所有成员的返回值都是true,整个every方法才返回true,否则返回false。
reduce()方法和reduceRight()方法依次处理数组的每个成员,最终累计为一个值。它们的差别是,reduce()是从左到右处理(从第一个成员到最后一个成员),reduceRight()则是从右到左(从最后一个成员到第一个成员),其他完全一样。
- reduce( function(a,b){}) 只有一个参数时 第一次执行时a表示第一个成员 再次执行时 为上一次执行的返回值
- reduce第二个参数为默认值 那么第一次执行时a的值就为设定的默认值
indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。indexOf方法还可以接受第二个参数,表示搜索的开始位置。
lastIndexOf方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1。
filter用于对数组进行过滤。返回符合条件的元素组成的新数组
