首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS数组at函数(获取最后一个元素的方法)介绍

本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大。 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做?...相信大部分人能够想到的代码是这样的: let last = array[ array.length - 1]; 嗯,这是最常用的获取数组最后一个元素的方式,依此类推获取倒数第二个,第三个的方式类似。...当然除了这种方式之外,还有其他的方式,比如: let last = array.slice(-1)[0] 先通过slice获取后面一个元素的数组,然后通过下标0获取最后一个元素。...这就让人羡慕python里面的数组操作,可以通过负索引的方式获取最后一个元素,代码如下: last = array[-1] js里面不支持负索引的方式。...不过es6新增了一个at方法,可以获取数组的指定索引的元素,并且支持负索引。负索引从后往前计算,-1表示最后一个,-2 表示倒数第二个,依此类推。 因此试用此方法获取最后一个元素会变得简单很多。

4.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于数组的最后一个元素之后是否需要追加”,”(逗号)

    因为接触的东西越来越多,阅读的内容也越来越丰富,最近就产生了一个困惑:“当我们写数组时,是否需要在数组的最后一个元素之后追加一个逗号” 有问题,那么我们就需要找思路来解决和处理问题,实践出真知,说干就干...,测试开始o(∩_∩)o__ 首先需要明确我们的探究目的: 两种书写方式有什么不同 追加逗号是否会造成语法错误 追加逗号是否会改变数组长度 两种书写方式各有什么优缺点 追加逗号的方式适合在哪些语言中应用...两种写法的优缺点对比 优点 缺点 追加逗号 无论是增加还是删减元素,都无需考虑数组结尾有没有追加逗号,改变时随心即可完成,方便 虽然在PHP中追加逗号不存在问题,但在json和sql中,这种语法是会产生错误的...不追加逗号 完全符合PHP的语法,且几乎所有语言的语法逻辑都是如此,不必担心兼容性问题 除了变更数组的时候需要考虑数组结尾有没有追加逗号之外,似乎并没有什么特别突出的缺点 结语 建议大家还是养成良好的习惯...,同意编程风格,不采用在数组最后一个元素后面追加逗号的做法,尤其是需要接触多种语言的情况下。

    2.4K30

    在数组中查找次大值,并与最后一个元素交换—C语言

    /*************************************************** 作业要求: 在数组中查找次大值,并与最后一个元素交换 完成日期: 2013年9月3日 *...int index; // 待求次大值元素下标 int tmp; // 临时变量,用来交换数组 // 求数组中次大值元素下标 index = findSecondMaxValueInArray...(a, 8); // printf("%dn", index); // 次大值与数组最后一个元素交换 tmp = a[index]; a[index] = a[7]; a[7] = tmp;...// 输出数组…… return 0; } /**************************************************** 函数功能: 在数组中查找次大值元素...函数参数: int a[] 待查找元素的数组 int n 数组中元素个数 返回值: 返回次大值元素在数组中的下标 时间复杂度: O(n):其中n表示数组中元素个数 空间复杂度:

    2.7K10

    在排序数组中查找元素的第一个和最后一个位置

    在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。...如果数组中不存在目标值 target,返回 [-1, -1]。 进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?...{-1, -1} 情况二:target 在数组范围中,且数组中不存在target,例如数组{3,6,7},target为5,此时应该返回{-1, -1} 情况三:target 在数组范围中,且数组中存在...总结 初学者建议大家一块一块的去分拆这道题目,正如本题解描述,想清楚三种情况之后,先专注于寻找右区间,然后专注于寻找左区间,左右根据左右区间做最后判断。...target的下标leftBorder; # 2、在 nums 数组中二分查找得到第一个大于等于 target+1的下标, 减1则得到rightBorder; # 3、如果开始位置在数组的右边或者不存在

    4.7K20

    在排序数组中查找元素的第一个和最后一个位置

    在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。...如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。...我们将这道题拆解成两个部分,第一部分就是求该元素的左端点,另一部分就是求该元素的右端点。其实这两部分是大同小异,只要弄懂其中一个,另一个就迎刃而解! 我们首先来讲第一部分——求该元素的左端点。...第一步将这些数据分为两个部分:小于元素和大于等于该元素这两个部分。 第二步就是普通二分算法的代码 注意这里有一个细节,跟普通二分查找算法不同,也是后面细节的“万恶之源”。...就是当 x >= t 时,right = mid,而不是mid - 1,这是因为我们最开始是将数组分为两个部分,一部分就是大于等于该元素,如果right = mid - 1,又可能会将我们要求的数据筛掉

    10410

    js删除数组中的一个元素_js数组包含某个元素

    目录 第一种:删除最后一个元素 pop 删除 slice 删除 splice 删除 for 删除 length 删除 第二种: 删除第一个元素 shift 删除 slice 删除 splice 删除...第三种:删除数组中某个指定下标的元素 splice 删除 for 删除 第四种:删除数组中某个指定元素的元素 splice 删除 filter 删除 forEach、map、for 删除 Set 删除...---- 第一种:删除最后一个元素 pop 删除 var arr = [1,2,3,4,5]arr.pop()// arr => [1,2,3,4] slice 删除 var arr = [1,2,3,4,5...不可以使用 delete 方式删除数组中某个元素,此操作会造成稀疏数组,被删除的元素的为位置依然存在为empty,且数组的长度不变 2....不可以使用 forEach 方法比对数组下标值,因为 forEach 在循环的时候是无序的 第四种:删除数组中某个指定元素的元素 splice 删除 var element = 2, arr =

    11.7K40

    刷题2:在数组中查找元素的第一个和最后一个位置

    题目:给定一个的整数数组 nums, 和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。...题目解析: 1.给定一个数组,确定的是一个数组, 数组是整数,那么我们可以知道,那么target的也是整数。...2.要求target的在数组中开始位置和结束位置,我们可以先找出来target的在list里面的下标位置,把这些下标位置放到list里面,我们去取list里面的第一个元素和最后一个元素,就是对应的开始位置和结束位置...那么我们就可以上手去实现我们的代码了。 从这期开始,我们的代码将用python 和java两个版本去实现,同时从两方面去提高我们的,同时 也面向了两门语言的学习者。...我们可以看到目前是没有发现问题的。这样,python版本实现完毕, 接下来我们去看看,对应的java版本是怎么实现的。

    2K20

    在排序数组中查找元素的第一个和最后一个位置(leetcode34)

    给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。...示例 1: 输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4] 解析: 方法一:二分查找 二分查找中,寻找leftIdx 即为在数组中寻找第一个大于等于 target...的下标,寻找 rightIdx 即为在数组中寻找第一个大于target 的下标,然后将下标减一。...两者的判断条件不同,为了代码的复用,我们定义 binarySearch(nums, target, lower) 表示在 nums 数组中二分查找 target 的位置,如果 lower 为 true,...则查找第一个大于等于 target 的下标,否则查找第一个大于target 的下标。

    1.8K10

    3分钟短文 | PHP数组获取最后一个元素,10个方式中哪个有错?

    今天我们来说说,如何获取数组的最后一个元素,并且不删除它。...不要小看这个需求,没准儿你还做不对呢 :) 学习时间 如果你首先想到了 array_pop,那很不幸,这个函数可以获取最后一个元素,却把数组更改了。...array_pop 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。...$x = end((array_values($array))); 第六种方法,严格地为了返回最后一个元素的值,使用 array_values 进行了索引重新编排。...$x = $array[] = array_pop($array); 第九种方法,我们需要明白,使用连等复制,array_pop 弹出数组的最后一个元素后,同时赋值给 x。这没问题。

    3.1K10

    Leetcode No.34 在排序数组中查找元素的第一个和最后一个位置

    一、题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。...3: 输入:nums = [], target = 0 输出:[-1,-1] 提示: 0 <= nums.length <= 105 -109 <= nums[i] <= 109 nums 是一个非递减数组...2、mid=(low+high)/2 3、假如low等于high,返回下标mid 4、假如nums[mid]等于target且nums[mid]比相邻的左侧元素大,返回下标mid 5、当目标值小于等于...nums[mid]时,说明目标值在左侧,往左侧递归查找,否则往右侧递归查找 查找最后一个位置同理,唯一不同的是第4、5步 4、假如nums[mid]等于target且nums[mid]比相邻的右侧元素小...mid]<nums[mid+1]){ return mid; } if(target>=nums[mid]){ //寻找最后一个位置

    1.9K10

    leetcode34-在排序数组中查找元素的第一个和最后一个位置

    前言 今天刷的题目是:在排序数组中查找元素的第一个和最后一个位置,这道题目在最开始AC以后,然后做了两步的优化操作,供大家参考。...题目 leetcode-34:在排序数组中查找元素的第一个和最后一个位置 分类(tag):二分查找这一类 英文链接:https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array...找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。...至于找最右侧的下标就是,将left=mid+1,来去逼近最右侧的下标; 如果没有找到则说明不存在返回-1; 示例 这里举一个例子帮助大家理解,对于数组[1,2,4,4,4,4,4,5,6],找4的最左下标...-1,如果不是-1,那说明需要继续找最右边的下标,如果是-1的话,那么说明数组中没有target的值,所以我们也不必在去找最右边的下标了,因为已经找过了,不存在的,还费这事干嘛,最终这样优化完速度快了1ms

    2.6K30

    LeetCode-34-在排序数组中查找元素的第一个和最后一个位置

    # LeetCode-34-在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。...你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。...,返回[-1,-1] 移动尾指针,直到找到最后一个等于target的位置,如果找完了都没有找到,返回[-1,-1] 当头尾指针相同时,说明只有一个target,返回当前位置[start,start]或[...,这时候只需要查找另外一个边界等于target的即可,可以进行循环移动查找,最后返回[start,end]即可 如果没有找到,返回[-1,-1] 方法3、递归分治(low): 通过二分查找切分数组寻找左右子数组的...target位置,迭代到只有一个,判断是否是目标值,返回一个都是当前index的数组,然后进行合并即可 方法4、二次二分找左右边界(fast): 第一次二分找左边界,第二次二分找右边界,找左边界时向右逼近

    2.3K20
    领券