JavaScript——数组
一、数组 基本方法
1. arr.push()
- - 往数组的末尾添加一个或多个元素,返回当前被修改后的数组的最新长度
- - - - 该方法会改变原数组
let arr = [
{ name: '张三' , age: 20 , sex: '男' } ,
{ name: '李四' , age: 20 , sex: '男' }
]
arr. push ( { name: '王五' , age: 20 , sex: '男' } )
console. log ( arr) ;
2. arr.pop()
- - pop
用于删除数组中最后的一位元素
返回被删除的这个元素,如果素组为空数组,返回值会是undefined
- - - - - 该方法会改变原数组
let arr = [ { name: '张三' , age: 20 , sex: '男' } ,
{ name: '李四' , age: 20 , sex: '男' }
]
let res = arr. pop ( )
console. log ( res) ;
console. log ( arr) ;
3. arr.unshift()
- - unshift
将一个或多个元素添加到数组的开头
返回值是被修改后的数组的个数
- - - - - 该方法会改变原数组
let arr = [ { name: '张三' , age: 20 , sex: '男' } ,
{ name: '李四' , age: 20 , sex: '男' }
]
arr. unshift ( { name: '王五' , age: 20 , sex: '男' } )
console. log ( arr) ;
4. arr.shift()
- - 用于删除数组中的第一位
如果是一个空数组,返回undefined,如果不是,则返回被删除的元素
- - - - - 该方法会改变原数组
let arr = [ { name: '张三' , age: 20 , sex: '男' } ,
{ name: '李四' , age: 20 , sex: '男' }
]
let res = arr. shift ( )
console. log ( res) ;
console. log ( arr) ;
二、数组排序方法
1. arr.sort(函数)
- 如果说不提供任何的参数,则根据默认规则来进行排序(根据unicode来进行排序)
- 如果提供参数(函数),我们可以指定排序的规则
- a
- b
a 和 b代表两个在比较的值
let arr = [ 1 , 2 , 4 , 3 , 5 , 8 , 6 , 7 , 9 ]
arr. sort ( ( a, b) = > a- b)
console. log ( arr) ;
arr. sort ( ( a, b) = > b- a)
console. log ( arr) ;
三、数组常用方法
1. arr1.concat(arr2)
- - concat 用于拼接两个或两个以上的数组,并返回一个新数组
- - - - - 不会改变原有数组的值
let arr1 = [ 1 , 2 , 3 ]
let arr2 = [ 4 , 5 , 6 ]
let res = arr1. concat ( arr2)
console. log ( res) ;
2. arr.join(sparator)
- - 把数组拼接起来,以字符串的方式,进行返回,如果不给参数,默认以逗号进行间隔
- - sparator
决定以什么符号对数组的里面进行拼接
- - 如果数组是一个空数组的话,则会返回一个空字符串
let arr = [ 1 , 2 , 3 ]
let res = ar1. join ( '@' )
console. log ( res) ;
3. arr.reverse()
- - reverse会把数组中的所有内容颠倒过来,并且返回一个新的数组
- - - - - - -会改变原有的数组
let arr = [ 1 , 2 , 3 ]
let res = arr. reverse ( )
console. log ( res) ;
四、数组查找方法
1. arr.indexOf(searchValue,[fromIndex])
- 查找目标字符串中,是否包含searchValue,如果包含,返回第一次出现的索引,如果不包含,返回-1
- searchValue 要查找的值
- fromIndex 查找的起始位置,如果不填,默认为0
- 如果大于或者等于length,则返回-1
如果说是一个负数(如果这个负数的绝对值超过length,则fromIndex为0),根据倒数来确认查找的位置
length + fromIndex
var arr = [ "a" , "b" , "c" , "a" ] ;
console. log ( arr. indexOf ( "vv" ) ) ;
console. log ( arr. indexOf ( "a" , arr. length) ) ;
console. log ( arr. indexOf ( "a" , - 2 ) ) ;
console. log ( arr. indexOf ( "a" , - 50 ) ) ;
2. arr.indexOf(searchValue,[fromIndex])
- 查找目标字符串中,是否包含searchValue,如果包含,返回第一次出现的索引,如果不包含,返回-1
- searchValue 要查找的值
- fromIndex 查找的起始位置,如果不填,默认为0
- 如果大于或者等于length,则返回-1
如果说是一个负数(如果这个负数的绝对值超过length,则fromIndex为0),根据倒数来确认查找的位置
length + fromIndex
var arr = [ "a" , "b" , "c" , "a" ] ;
console. log ( arr. indexOf ( "vv" ) ) ;
console. log ( arr. indexOf ( "a" , arr. length) ) ;
console. log ( arr. indexOf ( "a" , - 2 ) ) ;
console. log ( arr. indexOf ( "a" , - 50 ) ) ;
五、数组截取方法
1. slice(begin,end)
- 用于截取数组中的内容,返回一个新数组
- begin
- 如果不给,默认为0
- 截取的起始位置
- 如果值超过了length,就会返回一个空数组给你
- 如果是一个负数(负数的绝对值超过了length,就会默认从0开始截取),那就说明从倒数第begin开始截取
length + begin
- - end
- 如果不给,默认到数组结尾
- 控制截取的结束位置
- 如果小于(从位置上来说)bengin,会得到一个空字符串
- 如果是负数(如果负数的绝对值超过了length,那么就会得到一个空字符串),那么就说明从倒数第end个结束。
- 如果超过了length,默认也只到数组的结尾位置
begin是包含在内的,end是不包含在截取范围内
var arr = [ "a" , "b" , "c" , "d" , "e" ] ;
console. log ( arr. slice ( 2 ) ) ;
console. log ( arr) ;
console. log ( arr. slice ( 50 ) ) ;
console. log ( arr. slice ( - 2 ) ) ;
console. log ( arr. slice ( - 50 ) ) ;
console. log ( arr. slice ( 2 , - 1 ) ) ;
console. log ( arr. slice ( 0 , - 50 ) ) ;
console. log ( arr. slice ( 0 , 50 ) ) ;
六、数组新增方法
1. arr.forEach(callback,[thisArg])
- 对数组中的每一个元素,执行一次提供的函数
- arr.forEach(ele,index)
- ele :循环过程中的每一位元素
- index: 当前循环的元素对应的下标值
- arr :调用forEach的当前数组
- thisArg: 控制当前callback中的this指向
let arr = [ 1 , 2 , 3 ]
arr. forEach ( ( item, index) = > {
console. log ( item, index) ;
} )
2. arr.filter(callback,[thisArg])
- 筛选出符合函数中条件的元素,并作为一个新数组返回
- arr.filter(ele,index)
- - ele :循环过程中的每一位元素
- - index: 当前循环的元素对应的下标值
- - arr :调用filter的当前数组
let arr = [ 1 , 2 , 3 ]
let res = arr. filter ( item = > item > 1 )
console. log ( res) ;
3. arr.reduce(callback,[initValue])
- 判断数组中的每一个元素,是否都符合callback函数中的条件,返回ture 或 flase
- arr.reduce(function(result,ele,index)
- - result 结果
- - ele :当前正在循环的元素
- - index :当前正在循环的元素对应的索引值
- initValue 可选。对于result进行初始化
let arr = [ 1 , 2 , 3 ]
let res = arr. reduce ( item = > item > 0 )
console. log ( res) ;
4. some(callback,[thisAry])
- 测试数组中是否至少有一个元素通过了指定函数的测试,结果返回布尔值
let arr = [ 1 , 2 , 3 ]
let res = arr. some ( item = > item > 4 )
console. log ( res) ;
5. every(callbac,[thisAry])
- 测试数组中所有元素都通过了指定函数的测试,结果返回布尔值
let arr = [ 1 , 2 , 3 ]
let res = arr. every ( item = > item > 0 )
console. log ( res) ;
5. map(callbac,[thisAry])
- map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
let arr = [ 4 , 5 , 6 , 7 , 8 ]
let arrMap = arr. map ( item = > item * 2 )
console. log ( arrMap) ;
总结