javascript里经常用length-1得到最后一个元素,为啥减1就能得到最后一个呢?

author author     2023-04-28     580

关键词:

你不能说是length-1,应该说是a.length-1。这里的a表示你上面定义的那个整型一维数组,他的名字叫a对吧,然后a.length表示a数组的长度,这是一个方法,返回的是int的数,表示a数组的长度是几个。至于为什么要来个-1要从数组的排列来说,数组的第一个数的下标(index)是0吧,比如你定义的a长度为5,那么它的最后一个数的下标就是4,也就是用a[4]表示最后一个数。那个i是指的一个数,用来控制循环的,也就是用来控制循环打印多少次的。如果你不用a.length-1直接用a.length的话就会循环6次(因为第一个数下标是个0),那样就会报出数组下标越界异常!

数组的下标是从0开始的,所以最后的一个元素为a[a.length-1];
当你的i= 0时,a[a.length-i-1]便是最后一个元素。
参考技术A js里面的length是获取个数的意思。
比如
<ul><li></li><li></li><li></li></ul>
ul里面有三个li,所以用length获得3个,但是计算机编程语言一般是从0开始数起的,所以实际上个数是0,1,2这三个,想要获取最后一个元素,就要-1了。本回答被提问者和网友采纳
参考技术B 我们是通过下标的值来取得数字组中对应的值,
而下标是从0开始计算的,
arr[0]为第一个元素,
如果arr中有5个元素,则最后一个元素的下标为4,arr的length为5
即下标为(length-1)的元素为最后一个元素。
参考技术C 用数组来分析下
var arr = ['a','b','c'];
var len = arr.length; //变量len值是3
数组下标从0开始 arr[0] = 'a', arr[1] = 'b', arr[2] = 'c' ,所以 arr[len-1] = 'c';

20个最常用的js(javascript)代码整理

1、获取浏览器Cookie的值通过document.cookie来查找cookie值constcookie=name=>`;$document.cookie`.split(`;$name=`).pop().split(';').shift();cookie('_ga') 查看详情

javascript如何操作cookie?

读取cookiefunctiongetCookie(c_name)    if(document.cookie.length>0)  //先查询cookie是否为空,为空就return""      c_start=document.cookie.indexOf(c_name+"=")  //通过String对象的indexOf()来检查这个cookie是否存在,不存在就为-1    ... 查看详情

最常用的javascript数组方法(代码片段)

数组在我们开发中是最容易见到的,比如我们的全国地理坐标数据,接口返回的json数据中也会有很多数组数组中,我们常用的数组方法有数组遍历,根据索引值获取数组值,以及转换为字符串,数组拼接等等将数组转化为字符串转化为... 查看详情

最常用的生成 PDF 报告的方法(JavaScript、node.js)?

】最常用的生成PDF报告的方法(JavaScript、node.js)?【英文标题】:MostusedapproachtogenerateaPDFreport(JavaScript,node.js)?【发布时间】:2013-06-2405:27:46【问题描述】:任何从事此类工作的人都可以描述一般过程吗?我现在很困惑。我所说... 查看详情

数组的常用算法问题

1.求数组元素的最大值、最小值、和、平均数2.数组的复制和反转情况1:情况2:(如何实现复制)数组的反转://数组元素的反转//for(inti=0;i<arr.length/2;i++){//inttemp=arr[i];//arr[i]=arr[arr.length-1-i];//arr[arr.length-1-i]=temp;//}for(intx=0,y=arr.l... 查看详情

最常用的javascript字符串方法(代码片段)

有时候,我们拿到的数据不是我们想要的,比如我们需要将拿到的字符串进行截取啊,或者进行转换啊,很多情况下,都会用到以下几种字符串常见的方法字符串查找字符串查找的方法分别是indexOf,lastIndexOf,searchvarstr=我叫吕恣瑞,我考了... 查看详情

javascript数组操作

 vararr=newArray();arr[0]="aaa";arr[1]="bbb";arr[2]="ccc";//alert(arr.length);//3arr.pop();//alert(arr.length);//2//alert(arr[arr.length-1]);//bbbarr.pop();//alert(arr[arr.length-1]);//aaa//alert 查看详情

整理数组去重的几种常用方法(代码片段)

最近面试有一个面试题,要求尽可能多的列举数组去重的方法,现整理一下1、最简单的去重方法//最简单数组去重法/**新建一新数组,遍历传入数组,值不在新数组就push进该新数组中*IE8以下不支持数组的indexOf方法**/functionuniq(ar... 查看详情

解析常用排序算法(代码片段)

以下我说的排序算法都是说的从小到大排序1.插入排序 1insertSort(inta[])2intlength=a.length;3intb[]=newint[length+1];4for(inti=0;i<a.length;i++)//复制数组,将下标为0的空出来作为哨兵5b[i+1]=a[i];67for(inti=1;i<b.length;i++)//找n次,每 查看详情

markdownsnippets.md是我最常用的html,css和javascript代码片段,用于前端web开发(代码片段)

查看详情

javascript数组

javascript数组1.数组就是一组数据。2.创建数据使用Array构造函数创建数组使用数组字面量表示法3.数组的访问数组的访问是根据数组的下标,下标是重零开始的,所以第一个项目是[0],第二个是[1],以此类推。4.length(长度)数组的leng... 查看详情

大数常用计算模板及例题

一、模板&例题【两个大数相加】stringsum(strings1,strings2){ if(s1.length()<s2.length()) { stringtemp=s1; s1=s2; s2=temp; } inti,j; for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--) { s1[i]=char(s1[i]+( 查看详情

iPad 上的 JavaScript 错误

】iPad上的JavaScript错误【英文标题】:JavaScriptBugoniPad【发布时间】:2012-04-1115:16:43【问题描述】:我得到了这个代码:functionzeroPad(num,places)varzero=places-num.toString().length+1;returnArray(+(zero>0&&zero)).join("0")+num;result="String 查看详情

javascript常用的小功能集合

1.得到当前用户使用的浏览器的内核版本functiongetExplorer(){  varbrowser="";varexplorer=window.navigator.userAgent;if(explorer.indexOf("MSIE")>=0){//ie10及以下varb_version=navigator.appVersion;varversion=b_version.split 查看详情

javascript数组常用方法

<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title></head><body><scripttype="text/javascript">vararr=["刘力嘉","王建民","刘丹"]//push在数组的最后面添加一 查看详情

排序(代码片段)

...一次。vararr=[3,5,3,2,6,8];functionzhFn(arr)for(vari=0;i<arr.length-1;i++)for(varj=i+1;j<arr.length;j++)if(arr[i]>=arr[j])varr=arr[i];arr[i]=arr[j];arr[j]=r;冒泡排序原理:临近的两个元素两两比较,按照从小到... 查看详情

常用知识点

排序算法:①归并排序算法模板:1publicclassSolution{2publicvoidsortInteger(int[]a){3if(a==null||a.length==0){4return;5}6int[]temp=newint[a.length];7mergeDivideSort(a,0,a.length-1,temp);8}9publicvoidmergeDivideSort(in 查看详情

javascript快速排序

<script>varstu=[9,8,5,4,6,2,3,1,7,10];//创建数组console.log(stu);//打印functionstort(stu){//定义函数传入数组if(stu.length>1)//判断数组的长度大于1才执行循环{varc=parseInt((stu.length+1)/2);//数组长度加1除以二varcenter=stu.splice 查看详情