问题背景: ==数组在程序中用得较多,它本身的方法也众多,必须整理总结,以理解==
(1)、Array.prototype.join( separator )
语法: arr.join( separator )
用法: 用分隔符,将数组元素拼接成一个字符串
参数: 任意都可以
返回值: 返回拼接后的字符串,元素组不变
默认情况: 参数为空,将,
作为分隔符
.
(2)、Array.prototype.push( elems)
语法: arr.push( elem1, elem2,.... )
用法: 在数组末尾,追加元素,一个或多个
参数: 元素element
返回值: 返回新数组的长度
.
(3)、Array.prototype.unshift( elems)
语法: arr.unshift( elem1, elem2,.... )
用法: 在数组开头,追加元素,一个或多个
参数: 元素element
返回值: 返回新数组的长度
.
(4)、Array.prototype.pop()
语法: arr.pop()
用法: 删除数组最后一个元素
参数: 没有
返回值: 返回删除的值
.
(5)、Array.prototype.shift()
语法: arr.shift()
用法: 删除数组第一个元素
参数: 没有
返回值: 返回删除的值
.
(6)、Array.prototype.slice( startIndex, endIndex )
语法: arr.slice( startIndex, endIndex )
用法: 截取数组中某一个片段的元素
参数: 起点和终点索引位置,算头不算尾(猜中了开头却没猜中结尾)。
如果参数为负,则倒着数;省略第二个参数,则从索引值到尾;
返回值: 返回一个新数组。元素组不变
.
(7)、Array.prototype.splice( index, howmany, item1, item2….. )
语法: arr.splice( index, howmany, item1, item2..... )
用法: 从索引处,删除howmany个元素,并加入后面的元素
参数: index(必选),howmany(必须),item(可选)
返回值: 在原数组上改造。如果删除了元素,则返回删除的数组
.
(8)、Array.prototype.sort( callback )
语法: arr.sort( callback )
用法: 将数组的元素,按着某个方式排序
参数: callback(可选)。如果没有参数,则按着 ASCII
排序;提供了函数,则依照函数的方法排序
返回值: 在原数组上改造。
arr.sort(function(a,b) { //a,b泛指数组两个元素
return a-b; // 负数:a前b后;正数:a后b前; 0,正常顺序
})
//依据某种属性排序
var arr = [[1,2],[3,4,5],[6,7,8,9]];
arr.sort(function(a, b) {
return b.length - a.length;
})
console.log(arr); //[[6, 7, 8, 9],[3, 4, 5],[1, 2]]
.
(9)、Array.prototype.reverse( )
语法: `arr.reverse( )
用法: 反转数组的元素
参数: 空
返回值: 在原数组上改造。
.
(9)、Array.prototype.indexOf( searchValue, startIndex )
语法: `arr.indexOf( searchValue, startIndex )
用法: 寻找值首次出现位置,从startIndex往后找
参数: searchValue(必选),startIndex(可选),省略从0开始
返回值: 返回寻找值首次出现位置,如果没找到,返回-1
.
(10)、Array.prototype.map( callback )
语法: `arr.map( function( curValue[, index, array]){}[, thisArg] )
用法: 将数组的每个元素传入回调函数,处理
参数: curValue(必选),其它都可选;
curValue:当前元素;
index:当前元素索引;
array:当前元素来源的数组;
this:执行回调函数的this值;
返回值: 返回一个新数组,数组中的元素为原始数组元素调用回调函数处理后的值
.
(11)、Array.prototype.forEach( callback )
语法: `arr.forEach( function(curValue[, index, array]){}[, thisArg] )
用法: 将数组的每个元素传入回调函数
参数: curValue(必选),其它都可选;
返回值: 没有明确返回值,只是遍历数组每个元素,并相应的处理
.
(12)、Array.prototype.some( callback )
语法: `arr.some( function(curValue[, index, array]){}[, thisArg] )
用法: 检测数组元素是否==有==满足指定条件(callback提供)
参数: curValue(必选),其它都可选;
返回值: 返回boolean
.
(13)、Array.prototype.every( callback )
语法: `arr.every( function(curValue[, index, array]){}[, thisArg] )
用法: 检测数组元素是否==所有都==满足指定条件(callback提供)
参数: curValue(必选),其它都可选;
返回值: 返回boolean
.
(14)、Array.prototype.filter( callback )
语法: `arr.filter( function(curValue[, index, array]){}[, thisArg] )
用法: 选择符合指定条件(callback提供)的元素构成的数组
参数: curValue(必选),其它都可选;
返回值: 返回符合条件元素构成的新数组
.
(15)、Array.prototype.find( callback )
语法: `arr.find( function(curValue[, index, array]){}[, thisArg] )
用法: 选择符合指定条件(callback提供)的第一个元素
参数: curValue(必选),其它都可选;
返回值: 返回第一个符合条件的元素
.
(16)、Array.prototype.fill( fillValue, startIndex, endIndex )
语法: `arr.fill( fillValue, startIndex, endIndex )
用法: 用指定元素填充数组的元素
参数: fillValue(必选)
返回值: 在原数组上改造
.
(17)、Array.prototype.reduce( callback )
语法: `arr.reduce( function( ==accumulator==, curValue, index, arr )[, ==initialValue==])
用法: 将数组每个元素都调用callback,执行时用到上一次回调结果,最后返回一个值,有累加的效果
参数: accumulator(必选):上一次调用回调返回值,或initialValue;
initialValue(可选): 第一次调用时,有initialValue,accumulator为initialValue,curValue为数组第一个元素;没有initialValue,accumulator为数组第一个元素,curValue数组第二个元素
返回值: 在原数组上改造
.
(18)、Array.prototype.copyWithin( target, startIndex, endIndex )
语法: `arr.copyWithin( target, startIndex, endIndex )
用法: 复制数组中指定值到指定位置
参数: target:目标位置;startIndex–endIndex为复制的部分值,这个endIndex需要考虑target位置,以target位置为主
返回值: 在原数组上改造