首页 > 其他分享 >js中对数组的unshift是什么操作,为什么使用unshift进行命名?

js中对数组的unshift是什么操作,为什么使用unshift进行命名?

时间:2024-01-31 14:33:47浏览次数:23  
标签:数组 shift 元素 unshift js 开头 操作

在JavaScript中,unshift() 是数组对象的一个原生方法,它用于向数组的开头添加一个或多个元素,并将原有的数组元素依次向后移动。
这个方法会改变原始数组本身,同时返回新的数组长度。

在英语中,“unshift”不是一个标准的单词,但我们可以将其拆解为“un-”和“shift”。其中:

“un-” 是一个前缀,通常表示反向操作或取消某个动作,如“unlock”(解锁)、“undo”(撤销)等。
“shift” 本身有移动、变换位置的意思,在计算机编程领域尤其与数组元素的移位有关。
因此,在JavaScript中 unshift() 方法命名的含义是将元素向前移位,即不是向后移动数组元素,而是向数组的开头添加元素,并把原本位于该位置以及之后的所有元素都向后移动一位以腾出空间。这个名字直观地反映了它对数组内容的操作特性:不是移除或替换开头的元素,而是将新元素插入开头并相应地调整其他元素的位置。

unshift 这个名字在直观上确实不如 push(向数组末尾添加元素)那样直接明了。然而,这个名字的设计是基于“shift”这个词的含义来逆向思考的。

在计算机科学中,“shift”通常用于表示移动或改变顺序的行为。例如,在某些编程语言和数据结构中,有一种操作叫做“shift”,它会删除数组的第一个元素,并将所有其他元素向前移动一个位置,使得原本位于第二个位置的元素成为了新的第一个元素。这种操作可以想象为把数组中的元素整体向左移位。

那么,与之相反的操作便是“unshift”,即不是从数组开头移除并移动元素,而是向数组开头添加新元素,并使原有的元素顺次右移一位。虽然名称可能不够直观,但它是对“shift”操作的一种逆操作,故而得名“unshift”。通过这样的命名,开发人员可以根据“shift”的概念联想到其反向动作就是在数组开头插入元素。

标签:数组,shift,元素,unshift,js,开头,操作
From: https://www.cnblogs.com/longmo666/p/17999200

相关文章

  • 在gin-gonic框架下,gin.context 输出json, 默认会将&转义为\u0026, 怎么将这个转义关
    在gin-gonic中,如果你想要禁止对&等字符进行转义,可以使用gin.Context的PureJSON方法。这个方法允许你自己控制JSON输出,而不会进行字符的转义。以下是一个简单的例子:packagemainimport( "github.com/gin-gonic/gin" "net/http")funcmain(){ router:=gin.Default() ......
  • Js存储数据到LocalStorage并设置过期时间
    setLocal=function(key,val){varprefix="project_list_";key=prefix+key;varexpires=600;val=JSON.stringify({'val':val,'expires':newDate().getTime()+expires*1000});......
  • useState返回的为什么是数组而不是对象?
    首先,const[count,setCount]=useState(0)这种语法是ES6的解构赋值语法。数组在解构赋值时,按照返回的顺序一一解构,并且可以重新命名:constfoo=[1,2,3]const[a,b,c]=foo//a=1,b=2,c=3而对象在解构赋值时,必须和useState函数内部返回的对象的key同名:constfood={......
  • 解决gpt返回json Python没法解析的情况
    importreimportjsondefreplace_newlines(match):#在匹配的字符串中替换\n和\rreturnmatch.group(0).replace('\n','\\n').replace('\r','\\r')defclean_json_str(json_str:str)->str:""&......
  • 数组中重复的数据
    给定一个整数数组a,其中1≤a[i]≤n(n为数组长度),其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]publicList<Integer>findDuplicates(int[]......
  • 找到所有数组中消失的数字
    448.FindAllNumbersDisappearedinanArray(Easy)给定一个范围在1≤a[i]≤n(n=数组大小)的整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在[1,n]范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成......
  • Fatsjson1245漏洞复现
    Fastjson1245利用简介这是一个利用fastjson1245反序列化漏洞的靶场。漏洞复现点击登录,进入登录页面,进行用户名和密码的输入。在bp中就可以发现登录使用的是json格式的post请求。发送到Repeater中,也可以看到请求头中Content-Type为application/json。使用{"@......
  • JAVA基础-数组
    数组(array)是一种容器,用来存储同种数据类型的多个值。总结:数组容器在存储数据的时候,需要结合数据类型考虑。例如:int类型的数组容器(booleanbyteshortdouble)建议:容器的类型,和存储的数据类型保持一致数组的定义格式⚫格式一:数据类型[]变量名⚫范例:int[]array⚫格......
  • 无涯教程-ExpressJS - Bug调试
    Express使用Debug模块记录有关路由匹配,中间件以及应用模式等信息。要查看Express中使用的所有内部日志,请在启动应用程序时将DEBUG环境变量设置为Express:*-DEBUG=express:*nodeindex.js将显示以下输出。当您的应用程序组件无法正常运行时,这些日志非常有用,您还可以将DEBU......
  • C语言之二维数组的奥妙
    二维数组是什么二维数组是一个数组,数组的元素是数组type arr[N]={arr[M]};上图等价于typearr[N][M]N行M列数组,N和M都为整形常量 二维数组的存储方法如图是一个两行两列的二维数组,比如inta[2][2],在内存中是如何存储的采用的是蛇形的方法 二维数组的使用1#i......