JS数组常用方法和注意事项

  • push
  • push()  
  • concat()
  • pop()
  • shift()、unshift()
  • slice()
  • splice()
  • sort()
  • map
  • filter
  • foreach
  • some
  • reserve
  • indexOf

1)push() :向数组末尾追加数据,返回修改后的长度,改变原数组数据。

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

2)concat(): 和push方法类似,向数组末尾追加数据,返回一个新的数组,不改变原数组的数据。

var arry = [1, 2, 3]
var arryInfo = arry.concat(5)
console.log(arryInfo) // [1, 2, 3,5]
console.log(arry) //[1, 2, 3]

3)pop(): 删除数组的最后一条数据,返回删除的数据,改变原来数组的数据。

var arry = [1, 2, 3]
var arryInfo = arry.pop()
console.log(arryInfo) // 3
console.log(arry) //[1,2] 

4)shift():删除数组的第一个数据,返回删除的数据,改变原数组数据,数组为空时返回undefined。

unshift():  添加数据到数组首位,返回修改后的长度,修改原数组的数据。

var arry = [1, 2, 3]
var arryInfo = arry.shift()
console.log(arryInfo) // 1
console.log(arry) //[2,3] 
var arry = [1, 2, 3]
var arryInfo = arry.unshift(77)
console.log(arryInfo) // 4
console.log(arry) //[77,1,2,3] 

5) slice():  slice(startIdx, endIndx)截取数组数据,其中截取的数据包括startIdx的数据,不包括endIndx的数据,返回截取的数组,不改变原数组。

var arry = [1, 2, 3]
var arryInfo = arry.slice(0,1)
console.log(arryInfo) // [1]
console.log(arry) //[1,2,3] 

6)splice() : 和slice一样截取数组。和slice不同的是,splice直接修改了原数组(删除了截取的部分),返回的是截取的数组。

var arry = [1, 2, 3]
var arryInfo = arry.splice(1,2)
console.log(arryInfo) // [2,3]
console.log(arry) //[1] 

7)sort(): 对数组进行排序。ps: sort是对字符串排序(按照abcdef..这样的顺序排序),不对数字进行排序。

        如果数组是数字,排序没有效果。这时就需要一个排序函数协助。

var arry = [1,4, 2, 3]
var arryInfo = arry.sort()
console.log(arryInfo) // [1,4,2,3]
console.log(arry) //[1,4,2,3]

arryInfo = arry.sort(numberSort())
console.log(arryInfo) // [1,2,3,4]
console.log(arry) // [1,2,3,4]
// 排序函数
function numberSort(a,b){
    return a-b; // a-b:表示升序排序,b-a表示降序排序

}

        如果数组是字符串,可以直接排序。

var arry = ['f1a1','c12','b33','g3','f4']
var arryInfo = arry.sort()
console.log(arryInfo) // ["b33", "c12", "f1a1", "f4", "g3"]
console.log(arry) // ["b33", "c12", "f1a1", "f4", "g3"]

8)map: 遍历数组。返回一个新的数组,不改变原数组数据。

var arry = ['没有','嘿嘿','b33','g3','f4']
var arryInfo = arry.map(v=>{
    return v+'map'
}

        )
console.log(arryInfo) // ["没有map", "嘿嘿map", "b33map", "g3map", "f4map"
console.log(arry) // ["没有", "嘿嘿", "b33", "g3", "f4"]

9)filter: 筛选数组匹配的数据。返回匹配的数据数组,不改变原数组数据。

var arry = ['没有','嘿嘿','b33','g3','f4']
var arryInfo = arry.map(v=>{
    return v+'map'
}

        )
console.log(arryInfo) // ["嘿嘿"]
console.log(arry) // ["没有", "嘿嘿", "b33", "g3", "f4"]

10)foreach: 遍历数组。没有返回值,直接操作数组数据。

var arry = ['没有','嘿嘿','b33','g3','f4']
var arryInfo = arry.foreach(v=>{
    return v+'foreach'
}

        )
console.log(arryInfo) // undefined
console.log(arry) // ["没有", "嘿嘿", "b33", "g3", "f4"]

11)some: 查询数组中是否存在匹配的数据。有匹配的数据就返回true,不改变原数组。

var arry = ['没有','嘿嘿','b33','g3','f4']
var arryInfo = arry.some(v=>{
    return v.endWiths('3')
}

        )
console.log(arryInfo) // true
console.log(arry) // ["没有", "嘿嘿", "b33", "g3", "f4"]

12)reserve: 反转数组中的数据。直接操作的是原数组。

var arry = ['没有','嘿嘿','b33','g3','f4']
var arryInfo = arry.reserve()

        )
console.log(arryInfo) // ["f4", "g3", "b33", "嘿嘿", "没有"]
console.log(arry) // ["f4", "g3", "b33", "嘿嘿", "没有"]

13)indexOf:indexOf(必传参数,可选参数),从数组的开头开始查找必传参数的下标,可选参数设置从哪个下标开始查找。

var arry = ['没有','嘿嘿','b33','g3','f4']
var arryInfo = arry.indexOf('嘿嘿')
console.log(arryInfo) // 1
console.log(arry) // ["没有", "嘿嘿", "b33", "g3", "f4"]
arry.indexOf('嘿嘿',2)
console.log(arryInfo) // -1 表示没有查找到

以上均为个人总结,有补充的地方或者不对的地方欢迎留言~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值