JavaScript中的数组方法

unshift

给数组开头添加一个或多个元素 -- 返回新数组的长度

语法  :  数组.unshift()

var arr = [1,2,3]
arr.unshift(4)
var brr = arr.unshift(5)
console.log(arr)  //5,4,1,2,3
console.log(brr)  //5

shift

将数组的第一个元素删掉

语法 : 数组.shift() -- 返回被删掉的元素

var arr = [1,2,3]
var ele = arr.shift()
console.log(arr)   //2,3
console.log(ele)   //1

push

给数组末尾添加一个或多个元素

语法 : 数据.push(1个或多个元素) -- 返回新数组的长度

var arr = [1,2,3]
var length= arr.push(4,5,6)
console.log(arr)  //1,2,3,4,5,6
console.log(length)  //6

pop

删除数组的最后一个元素

语法 : 数组.pop() -- 返回被删掉的元素

var arr = [1,2,3]
var ele= arr.pop()
console.log(arr)  //1,2
console.log(ele)  //3

splice

在数组的任意一个位置可以添加,删除,修改一个或多个元素

语法 : 数组.splice(开始下标,要删除的元素个数,在删除位置要放进去的1个或多个元素) -- 返回所有被删除的元素组成的数组 

var arr = [1,2,3]
arr.splice(1,1,4)   //修改
arr.splice(1,0,4,5,6)    // 添加 
var brr = arr.splice(1,1)    //删除 2
console.log(arr)  //1,5,6,4,3
console.log(brr)  //4

reverse

反转数组

语法 : 数组.reverse() -- 返回反转后的数组

var arr = [1,2,3]
var brr =  arr.reverse()
console.log(arr)  //3,2,1
console.log(arr === brr)   //true

sort

排序

语法 : 数组.sort()

sort() 进行了升序排列 -- 返回排序后的数组

var arr = [12,8,6,4,7,2,1,3]
arr.sort()
console.log(arr)   //默认使用字符串的规则进行排列  [1, 12, 2, 3, 4, 6, 7, 8]

按照数字顺序排列

语法 : 数组.sort(function(a,b){

                               return a - b 升序

                               return b - a 降序

                   })

var arr = [12,8,6,4,7,2,1,3]
var brr = arr.sort(function(a,b){
    return a -b
})
console.log(arr)  //[1, 2, 3, 4, 6, 7, 8, 12]
console.log(brr)  //[1, 2, 3, 4, 6, 7, 8, 12]
console.log(arr === brr)   //true

总结 : 以上七种会改变原数组

slice

从数组中截取其中一部分

语法 : 数组.slice(开始下标,结束下标) --返回截取出来的那一部分组成的数组

注意事项 :

包前不包后,第二个参数可以不给,省略第二个参数就默认截取到数字末尾;两个参数都不加,可以从开头截取到结尾

var arr = [1,2,3,4,5,6,7,8,9]
var brr = arr.slice(3,6)  //截取4,5,6
var brr = arr.slice()  //全部截取
console.log(arr)  //[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(brr)  //[1, 2, 3, 4, 5, 6, 7, 8, 9]

concat

将一个或多个元素或数组合并成一个更大的数组

语法 : 数组.concat(1个或多个元素) -- 返回更大的新数组

//合并元素
var arr = [1,2,3]
var brr = arr.concat(4,5,6)
console.log(arr)  //[1, 2, 3]
console.log(brr)  //[1,2,3,4,5,6]

//合并数组
var arr = [1,2,3]
var crr = [4,5,6]
var drr = [7,8,9]
var brr = arr.concat(crr,drr)
console.log(brr)  //[1,2,3,4,5,6,7,8,9]

indexof

 查找一个元素在数组中第一次出现的下标

 语法 : 数组.indexof(元素) -- 找到了就返回下标,找不到返回-1

var arr = [1,2,3,1]
var index = arr.indexOf(1)
console.log(index)  //0
//通常会利用找到和找不到的返回值来判断一个元素是否在数组中

 语法 : indexof(元素,开始下标) -- 从开始下标开始向后找元素第一次出现的下标

var arr = [1,2,3,1]
var index = arr.indexOf(1,2)
console.log(index)  //3

lastIndexOf

查找元素在数组中最后一次出现的下标

var arr = [1,2,3,1]
var idx = arr.lastIndexOf(3)
console.log(idx)  //2

语法 : 数组.lastIndexOf(元素,下标) - 将指定的下标当作数组的结尾,找元素在数组中最后一次出现的下标  

var arr = [1,2,3,1]
var idx = arr.lastIndexOf(3,1)
console.log(idx)  //-1

join

使用指定的连接符将数组中的每个元素链接成一个字符串

语法 : 数组.join(连接符) -- 返回一个字符串

var arr = ['a','b','c']
var str = arr.join('_')  //a_b_c
var str = arr.join('')//将所有元素合在一起   abc
var str = arr.join()//不指定连接符默认用逗号  a,b,c
console.log(str)

foreach

用于遍历数组 不遍历空元素

语法 :var brr = 数组.foreach(function(value,index,array){})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

var arr = ['a','b','c']
arr.forEach(function(value,index,array){
    console.log(value,index,array)
})
//不能用break

filter

将数组中满足指定条件的元素都组成一个新的数组并返回

语法 : 

var brr = 数组.filter(function(value,index,array){})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

return 条件

var arr = [60,59,62,70]
var brr = arr.filter(function(value){
    return value>60
})
console.log(brr)  //62,70

map

将数组中的每个元素都处理成新的元素,所有新的元素组成新的数据返回

语法 : var brr = 数组.map(function(value,index,array){})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

return true后的新元素

var arr = [1,2,3,1]
var brr = arr.map(function(v) {
    v += 2
    return v
})
console.log(brr);  // [3, 4, 5, 3]

every

判断数组中是否所有元素都满足指定条件,都满足就返回true

语法 : var bool = 数组.every(function(value, index, array) {})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

return 条件

var arr = [1,2,3,1]
var bool = arr.every(function(v) {
    return v >= 18
})
console.log(bool); //false

some

判断数组中是否至少有一个满足条件,都不满足条件就返回false

语法 : 数组.some(function(value,index,array){})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

return 条件

var arr = [66,98,45,78]
var bool = arr.some(function(v){
   return v < 60
})
console.log(bool)  //true

find

从数组中找到满足条件的第一个元素 - 找到了就返回元素,找不到就返回undefined

语法 : var ele = 数组.find(function(value, index, array) {})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

var arr = [56, 89, 92, 86, 46, 32]
var ele = arr.find(function(v) {
    return v < 90
})
console.log(ele);  //56

findIndex

从数组中找到满足条件的第一个元素的下标 - 找到就返回下标,找不到就返回-1

语法: var ele = 数组.findIndex(function(value, index, array) {})

value - 代表遍历出来的每个元素

index - 代表每个元素的下标

array - 代表当前正在遍历的这个数组

var arr = [56, 89, 92, 86, 46, 32]
var idx = arr.findIndex(function(v) {
    return v < 60
})
console.log(idx);  //0

reduce

归并 - 数组求和

语法: 数组.reduce(function(a, b) {

             a第一次代表第一个元素,第二次开始代表上一次返回的结果

             b第一次代表第二个元素,第二次代表第三个元素,...

         })

var arr = ['111', '222', '333']
arr.reduce(function(a, b) {
    console.log(a, b);   //111 222
})
//a + b 的和
var arr = [1,2,3,5,6,7,8,9]
var sum = arr.reduce(function(a, b) {
    return a + b
})
console.log(sum);   //41

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值