心态浮躁的我在自己设想的小项目写不下去的时候跑过来没事干重新弄DS玩

看了下《学习JS数据结构与算法》的第二章并写了一下这几个方法:

pop,shift,unshift


1.myUnshift

function myUnshift(addNum,array) {for (var i = array.length; i >= 0; i--) {array[i] = array[i - 1];}array[0] = addNum;//return array; 此处返回的内容有误,array应该返回的是新的长度return array.length;
}

用以实现数组的unshift()方法,插入元素到数组首位;

算法的思路就是:从数组最后一位开始,把数组的前一位的值赋值给当下位置,并一直遍历整个数组;最后再把array[0]用想要被传入的值赋值即可;

2.pop

function myPop(array) {return array[array.length - 1];array.length--;//return array;
}

用以实现数组的pop()方法,删除数组最后一位并使数组长度-1;

3.shift

function myShift(array) {return array[0];for (var i = 0; i < array.length; i++) {array[i] = array[i + 1];}array.pop();//return array;
}

用以实现数组shift()方法,将数组首位元素删除;

算法思路:先把当前位置的值用后一位的覆盖,再删除最后一位即可;

【XJB造轮子】独立手写实现JS中数组的部分方法相关推荐

  1. js中数组常用的方法总结,包括ES6

    原文地址:js中数组常用的方法总结,包括ES6 1.push() 后增 push()方法可以向数组后添加一个新的元素,并返回新数组的长度. 末尾添加,返回长度,改变原数组 var a = [1,2,3 ...

  2. JS中数组使用的方法

    JS中数组使用的方法 数组的介绍 JavaScript Array(数组):属于对象的一种 在句子中的作用就是使用一个单独的变量来存储一系列的值 数组的创建方法 1.字面量方式:var arr=[] ...

  3. js中数组的entries方法

    提示:js数组方法之entries方法的使用 js的数组身上的方法entries方法执行完会返回一个数组的iterator对象,可以借助for -of-遍历或者next()方法遍历. for -of遍 ...

  4. 来一起造轮子:手写 Vue3 reactivity 模块

    最近和一个猎头聊天,说到现在前端供需脱节的境况.一方面用人方招不到想要的中高级前端,另一方面市场上有大量初级前端薪资要不上价. 特别是用 Vue 框架的,因为好上手,所以很多人将 Vue 作为入门框架 ...

  5. 来一起造轮子:手写 Vue3 reactivity 模块

    最近和一个猎头聊天,说到现在前端供需脱节的境况.一方面用人方招不到想要的中高级前端,另一方面市场上有大量初级前端薪资要不上价. 特别是用 Vue 框架的,因为好上手,所以很多人将 Vue 作为入门框架 ...

  6. JS中数组查询的方法indexOf()、lastIndexOf()、includes()、find()、findIndex()、filter()、every()

    JS中涉及到数组查询的方法见下表: 方法 描述 参数 返回值 indexOf() 搜索数组中的元素,并返回它所在的位置. 要搜索的元素 ,查找的起始位置 元素第一次出现的索引 lastIndexOf( ...

  7. js中数组大全的方法总结

    1.join() 将数组转换为字符串,默认是逗号.不改变原数组,返回转换后的字符串 . var arr = ["Banana", "Orange"," ...

  8. js中数组去重的方法

    1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5];console.log(arr); // ...

  9. 前端面试:手写代码JS实现字符串反转

    前端萌新面试:手写代码JS实现字符串反转 前言 因为做前年小红书的前端校招面试题,发现出现好几道关于字符串对象和数组对象的题目,说难不难,但突然要写的话一时想不起来,这不想着做个小总结. 首先明白字符 ...

最新文章

  1. 新型攻击接踵而来 思科Talos解析Jaff勒索软件
  2. python if语句多个条件-python – if / elif语句的多个条件
  3. 【python图像处理】python绘制灰度直方图
  4. 集合添加数据类型出现:unhashable type: ‘list‘
  5. 台式电脑键盘按键错乱_电脑键盘各个按键有哪些作用 电脑键盘各个按键作用介绍...
  6. 【Leetcode】【Longest Palindromic Substring】【最长回文子串】【C++】
  7. NanoHTTPD web server的一个简单荔枝
  8. java.lang.Runtime.availableProcessors返回可用处理器的Java虚拟机的数量
  9. android登陆的编写
  10. react大数据量渲染_UseEffect在React中运行无限渲染(超过最大更新深度)
  11. LeetCode 116. Populating Next Right Pointers in Each Node
  12. 线程--匿名内部类实现多线程的2种方式
  13. 链家二手房采集数据分析
  14. [game]《泰坦陨落2》
  15. PXE启动芯片出错代码表初始化/引导/载入Bootstrap错误代码
  16. win10家庭版调出组策略_正版Win10免费送!这绝对是全网最低价的正版Win10系统
  17. 医学图像分割之TransUNet
  18. python 图像批量png转jpg格式
  19. Qt学习之添加游戏音效
  20. 三天搞定射频识别技术(一)1.2

热门文章

  1. python将字符串写成二进制文件
  2. ManageEngine卓豪在2022年度“IDC MarketScape UEM评估报告”中被评为领导者
  3. ubuntu 18.04 网络图标不见的解决办法
  4. Me-and-My-Girlfriend-1
  5. Android 实现加载动画
  6. uniapp里适合添加的一些好看的图片片
  7. SpringBoot实战系列——数据访问=(Mybatis+Redis)
  8. java strtotime_php 深入理解strtotime函数的使用详解
  9. 【中缀、后缀表达式(整数)的介绍、转换及运算】
  10. Linux TCP TransTimer