JavaScript操作数组的方法
concat concat() 方法用于连接两个或多个数组。该方法返回被连接数组的一个副本。
var arr1 = [ 1 , 2 , 3 ] ;
var arr2 = [ 4 , 5 ] ;
var arr3 = arr1. concat ( arr2) ;
console. log ( arr1) ;
console. log ( arr3) ;
join join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用’,'号分割,不改变原数组。
var arr = [ 2 , 3 , 4 ] ;
console. log ( arr. join ( ) ) ;
console. log ( arr) ;
push push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。末尾添加,返回的是长度,会改变原数组。
var a = [ 2 , 3 , 4 ] ;
var b = a. push ( 5 ) ;
console. log ( a) ;
console. log ( b) ;
pop pop() 方法用于删除并返回数组的最后一个元素。返回最后一个元素,会改变原数组。
var arr = [ 2 , 3 , 4 ] ;
console. log ( arr. pop ( ) ) ;
console. log ( arr) ;
unshift unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。返回新长度,改变原数组。
var arr = [ 2 , 3 , 4 , 5 ] ;
console. log ( arr. unshift ( 3 , 6 ) ) ;
console. log ( arr) ;
tip : 该方法可以不传参数, 不传参数就是不增加元素。
shift shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。返回第一个元素,改变原数组。
var arr = [ 2 , 3 , 4 ] ;
console. log ( arr. shift ( ) ) ;
console. log ( arr) ;
slice 返回一个新的数组,包含从 start 到 end (不包括该元素,左闭右开)的 arrayObject 中的元素。返回选定的元素,该方法不会修改原数组。
var arr = [ 2 , 3 , 4 , 5 ] ;
console. log ( arr. slice ( 1 , 3 ) ) ;
console. log ( arr) ;
sort 按照 Unicode code 位置排序,默认升序
var fruit = [ 'cherries' , 'apples' , 'bananas' ] ;
fruit. sort ( ) ;
var scores = [ 1 , 10 , 21 , 2 ] ;
scores. sort ( ) ;
indexOf 和 lastIndexOf 都接受两个参数:查找的值、查找起始位置 不存在,返回 -1 ;存在,返回位置。indexOf 是从前往后查找, lastIndexOf 是从后往前查找。
var numbers = [ 2 , 5 , 9 , 2 ] ;
numbers. lastIndexOf ( 2 ) ;
numbers. lastIndexOf ( 7 ) ;
numbers. lastIndexOf ( 2 , 3 ) ;
numbers. lastIndexOf ( 2 , 2 ) ;
numbers. lastIndexOf ( 2 , - 2 ) ;
numbers. lastIndexOf ( 2 , - 1 ) ;
every 对数组的每一项都运行给定的函数,每一项都返回 ture,则返回 true
function isBigEnough ( element, index, array ) {
return element < 10 ;
}
[ 2 , 5 , 8 , 3 , 4 ] . every ( isBigEnough) ;
some 和every 差不多,但是some是有一个为true就返回true filter 和some差不多,但是filter返回所有为true数组
var words = [ "spray" , "limit" , "elite" , "exuberant" , "destruction" , "present" , "happy" ] ;
var longWords = words. filter ( function ( word ) {
return word. length > 6 ;
} ) ;
map 对数组的每一项都运行给定的函数,返回每次函数调用的结果组成一个新数组
var numbers = [ 1 , 5 , 10 , 15 ] ;
var doubles = numbers. map ( function ( x ) {
return x * 2 ;
} ) ;
const items = [ 'item1' , 'item2' , 'item3' ] ;
const copy = [ ] ;
items. forEach ( function ( item ) {
copy. push ( item)
} ) ;
find findIndex 传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回该元素,并且终止搜索。findIndex返回的是index索引
const arr = [ 1 , "2" , 3 , 3 , "2" ]
console. log ( arr. find ( n => typeof n === "number" ) )
fill 用新元素替换掉数组内的元素,可以指定替换下标范围。
arr. fill ( value, start, end)
copyWithin 选择数组的某个下标,从该位置开始复制数组元素,默认从0开始复制。也可以指定要复制的元素范围。
arr. copyWithin ( target, start, end)
const arr = [ 1 , 2 , 3 , 4 , 5 ]
console. log ( arr. copyWithin ( 3 ) )
const arr1 = [ 1 , 2 , 3 , 4 , 5 ]
console. log ( arr1. copyWithin ( 3 , 1 ) )
const arr2 = [ 1 , 2 , 3 , 4 , 5 ]
console. log ( arr2. copyWithin ( 3 , 1 , 2 ) )
from 将类似数组的对象(array-like object)和可遍历(iterable)的对象转为真正的数组
const bar = [ "a" , "b" , "c" ] ;
Array. from ( bar) ;
Array. from ( 'foo' ) ;
reduce reduce() 方法将数组中的元素逐一应用到一个函数上,并返回一个单一的累积值。
array. reduce ( callbackFn, initialValue)
相关参考
js操作数组对象