首页 > 其他分享 >Array.prototype.at

Array.prototype.at

时间:2023-01-19 08:33:24浏览次数:38  
标签:index arr console log 参数 let Array prototype

概念

Array.prototype.at方法根据索引位置,返回数组中对应的元素。

语法

arr.at(index)

参数

  • index 需要检索的位置。

返回值

  • 返回数组中索引的元素。如果索引不在数组范围内,则返回undefined。

描述

  1. 当参数index是整数时。
    1.1、 当参数index不存在时,默认为0;
    1.2、 当参数index为正整数时,从数组起始位置开始向数组末尾依次索引,即从前向后依次索引;
    1.3、 当参数index为负整数时,从数组末尾位置开始向数组的起始位置依次索引,即从后向前依次索引。
    1.4、 当参数index不在数组范围内,则返回undefined。
  • 当 index 不存在时,等价于0;
  • 当 index 为正整数时;
  • 当 index 为负整数时,等价于 index + arr.length。
0 1 2 3 4
-5 -4 -3 -2 -1
  1. 当参数不是整数时。
    将参数转化成整数,在按照上面的方式判断。

注意 at方法中参数不能将BigInt转化成数值。

讨论参数index为什么不能将BigInt转化成数值?猜一猜转化规则?

公布参考答案:
at方法中参数进行了隐式转换 index = Math.floor(index)。

例子

例一、参数不存在

let arr = ['前', '端', '咖', '官', '网'];
console.log(arr.at());  // 前

例二、参数为0时

let arr = ['前', '端', '咖', '官', '网'];
console.log(arr.at(0));  // 前

例三、参数为正整数时

let arr = ['前', '端', '咖', '官', '网'];
console.log(arr.at(1));  // 端

例四、参数为负整数时

let arr = ['前', '端', '咖', '官', '网'];
console.log(arr.at(-1));  // 网

例五、参数不在数组范围内

let arr = ['前', '端', '咖', '官', '网'];
console.log(arr.at(5));  // undefined
console.log(arr.at(-6));  // undefined

例六、参数是浮点数时,向下取整

let arr = ['前', '端', '咖', '官', '网'];
let result = arr.at(1.9);
console.log(result);  // '端'

例七、参数是字符串时

let arr = ['前', '端', '咖', '官', '网'];
let result = arr.at('1.9');
console.log(result);  // '端'

例八、参数是布尔值时

let arr = ['前', '端', '咖', '官', '网'];
let result = arr.at(true);
console.log(result);  // '端'

例九、参数是BigInt时

let arr = ['前', '端', '咖', '官', '网'];
let result = arr.at(1n);  // Uncaught TypeError: Cannot convert a BigInt value to a number
console.log(result);

实现 at 方法

if (!Array.prototype.at) {
  Array.prototype.at = function (index) {
  	index = Math.floor(index);
  	
    if (index === undefined) {
      index = 0;
    } else if (index < 0) {
      index = index + this.length;
    }
    retun this[index];
  };
}

公众号

标签:index,arr,console,log,参数,let,Array,prototype
From: https://www.cnblogs.com/kuikui/p/17061020.html

相关文章

  • Array.prototype.concat
    概念Array.prototype.concat方法将数组实例中的元素与添加一个或多个元素(数组)合并成一个新数组。语法arr.concat(element1)arr.concat(element1,element2)arr.conca......
  • Arrays类
    Arrays类一、Arrays类常见方法Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)。toString返回数组的字符串形式Arrays.toString(arr)sort排序(......
  • ArrayList类的常用方法
    ArrayList类的常用方法packageheima01;importjava.util.ArrayList;/*ArrayList常用方法:publicbooleanremove(Objecto):删除指定的元素,返回删除是否成功publicE......
  • JDK 1.8 ArrayList源码分析 关键代码
    /***1.ArrayListAbstractList中实现了List接口冗余,作者已经承认*2.RandomAccess可以随机访问,标记接口***/publicclassArrayList<E>extendsAbstractList<E> ......
  • 关于javaScript中的__proto__和prototype
    区别:__proto__是浏览器对实例化对象中[[prototype]]属性的命名方式,__proto__是属于对象的属性,prototype是属于函数对象的属性。__proto__指向[函数名].prototype,[函数名]......
  • ArrayList和LinkedList的区别
    ArrayList:基于动态数组。连续内存存储,适合下标访问(随机访问)。扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,将老数组数据拷贝到新数组,如果不是尾部插入数据还会涉......
  • JS二进制:File、Blob、FileReader、ArrayBuffer、Base64
    JavaScript提供了一些API来处理文件或原始文件数据,例如:File、Blob、FileReader、ArrayBuffer、base64等。  Blob全称为binarylargeobject,即二进制大对象,它是......
  • [LeetCode] 1814. Count Nice Pairs in an Array
    Youaregivenanarray nums thatconsistsofnon-negativeintegers.Letusdefine rev(x) asthereverseofthenon-negativeinteger x.Forexample, rev(1......
  • 手写笔记11:谈谈ArrayList?
    ......
  • B. Gardener and the Array
    B.GardenerandtheArrayThegardenerKazimirKazimirovichhasanarrayof$n$integers$c_1,c_2,\dots,c_n$.Hewantstocheckiftherearetwodifferents......