为了账号安全,请及时绑定邮箱和手机立即绑定

用 splice函数分别实现 push、pop、shift、unshift的方法

标签:
JavaScript

主要需要注意的是不同方法他们本身返回的值应该是什么,是数组当前的长度,还是取出的元素的值,再在splice函数里面进行相应的return就可以了。具体如下:

2018.7.23 号关于此博客对两个返回元素值的函数进行了更正,返回 length 长度的没有影响。详见内容


  • 用 splice函数实现 push方法

function samePush(arr, value){
    arr.splice(arr.length, 0, value)    return arr.length
}var arr = [3, 4, 5]//使用push方法arr.push(10) // arr 变成[3,4,5,10],返回4(length长度)//调用函数samePush()samePush(arr,12) // arr变成[3, 4, 5, 10, 12],返回5(length长度)


  • 用 splice函数实现 pop方法

这里需要进行更正,如果按照之前的return arr.splice(arr.length-1,1)这样写,返回的是一个含有一个数值的数组,并不是元素值,所以还需要取出他的0位置元素,将它变成值

webp

更正


function samePop(arr) {    // 之前错误写法 return arr.splice(arr.length-1, 1)
    return (arr.splice(arr.length-1, 1))[0]  //详细分析见上更正图}var arr = [3, 4, 5, 16, 17]//使用pop方法arr.pop() // arr 变成[3, 4, 5, 16],返回17(取出的元素值)//调用函数samePop()samePop(arr) // arr 变成[3, 4, 5],返回16(取出的元素值)


  • 用 splice函数实现 shift方法

同上、这里同样需要更正,原因同上


webp

更正

function sameShift(arr) {  
    // 之前错误写法 return arr.splice(0,1)
    return (arr.splice(0,1))[0]  //详细分析见上更正图}var arr = [3, 4, 5, 16, 17]//使用shift方法arr.shift()  // arr 变成[4, 5, 16, 17],返回3(取出的元素值)//调用函数sameShift()sameShift(arr)  // arr 变成[5, 16, 17],返回4(取出的元素值)


  • 用 splice函数实现 unshift方法

function sameUnshift(arr,value) {  
    arr.splice(0,0,value)    return arr.length
}var arr = [3, 4, 5, 16, 17]//使用unshift方法arr.unshift(22)  //arr 变成[22, 3, 4, 5, 16, 17],返回6(length长度)//调用函数sameUnshift()sameUnshift(arr,11)  // arr 变成[11, 22, 3, 4, 5, 16, 17],返回7(length长度)


参考链接



作者:evenyao
链接:https://www.jianshu.com/p/5b8935eaac1a


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消