当前位置: 首页 > news >正文

【Web前端】关于JS数组方法的一些理解

一、具备栈特性的方法

unshift(...items: T[]) : number

将一个或多个元素添加到数组的开头,并返回该数组的新长度。

shift(): T | undefined

从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

二、具备队列特性的方法

push(...items: T[]): number;

将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

pop(): T | undefined;

方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。

三、具备排序特性的方法

reverse()

将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

sort(compareFn?: (a: number, b: number) => number): this;

对数组的元素进行排序,并返回数组。

1、如果没有指明 compareFn ,会按照转换为的字符串的诸个字符的 Unicode 位点进行排序。例如 "Banana" 会被排列到 "cherry" 之前。涉及到数字时要尤为注意:

const array1 = [1, 30, 4, 21, 100000];

array1.sort();

console.log(array1); // [1, 100000, 21, 30, 4]

2、如果指明了 compareFn ,那么数组会按照调用该函数的返回值排序:

compareFn(a, b) 返回值

排序顺序

> 0

a 在 b 后

< 0

a 在 b 前

=== 0

保持 a 和 b 的顺序

四、数组截取的方法

slice(start?: number, end?: number): Int8Array;

将 [start,end) 范围内的元素浅拷贝至一个新数组中并返回该数组,原始数组不会被改变。

splice(start: number, deleteCount?: number): T[];

通过删除、替换现有元素或原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

五、元素遍历相关的方法

every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;

判断数组内的所有元素是否都满足函数的执行条件。都通过返回true,否则返回false

some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;

判断数组内是否有元素满足函数的执行条件。只要有一个通过就返回true,否则返回false

map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;

创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成,一般用于数据转换,注意map函数是在遍历每一项元素时执行回调函数,而不是调用者控制遍历,因此return不能跳出map循环

forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;

使用上基本和map和一样,区别在于它没有返回值。

reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number) => T): T;

遍历数组,每循环一次,将循环返回值当成下一次循环的初始值参与计算。

比如计算所有元素的总和:

const arr = [1,2,3,4,5];

arr.reduce((pre,cur)=>(pre+cur)); // return 15

详细使用参考这篇文章

六、元素查找的方法

at(index:number)

返回index索引对应的元素,允许正数和负数。负整数从数组中的最后一个元素开始倒数。

indexOf(searchElement: T, fromIndex?: number): number;

返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回 -1。

lastIndexOf(searchElement: T, fromIndex?: number): number;

返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。从后向前查找。

findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;

返回数组中满足提供的函数条件的第一个元素的索引。若没有找到对应元素则返回 -1。

find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;

返回数组中满足提供的函数条件的第一个元素的值。否则返回 undefined

七、toString()和toLocalString()的区别

toString()toLocalString()都是对数组的每个元素执行Object对应的方法并用”,”join出一段字符串返回。一般情况下元素的toString和toLocalString是一样的,但请注意number和date这俩货,他们重写了toLocalString方法。

1、数字:

const number=123456789;

console.log(number.toString()); //'123456789'

console.log(number.toLocalString()); //'123,456,789'

2、日期:

const date=new Date();

console.log(date.toString()); //'Tue Feb 28 2023 16:54:36 GMT+0800 (中国标准时间)'

console.log(date.toLocalString()); //'2023/2/28 16:54:36'

http://www.lryc.cn/news/24265.html

相关文章:

  • 多智能体集群协同控制笔记(1):线性无领航多智能体系统的一致性
  • hadoop-Yarn资源调度器【尚硅谷】
  • 聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题
  • Flume 使用小案例
  • DLO-SLAM代码阅读
  • X和Ku波段小尺寸无线电设计
  • 推荐算法 - 汇总
  • Android 系统的启动流程
  • 自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第二部分
  • Vue 3 第五章:reactive全家桶
  • 【联机对战】微信小程序联机游戏开发流程详解
  • 优化基于axios接口管理的骚操作
  • 【Django功能开发】如何正确使用定时任务(启动、停止)
  • 7个好用到爆的音频、配乐素材网站,BGM都在这里了
  • JUC(二)
  • ATS认证教学
  • 【操作系统】进程管理
  • 一分钟掌握技术术语:API(接口)
  • RabbitMQ之交换机
  • Tensorflow深度学习对遥感图像分类,内存不够怎么办?
  • 基础存贮模型介绍
  • JNDIExploit使用方法
  • 建议一般人不要全职做副业
  • pytorch入门6--数据分析(pandas)
  • 淘宝API接口开发系列,详情接口参数说明
  • keep-alive
  • Maven的生命周期及常用命令
  • 【Java开发】JUC基础 03:线程五大状态和主要方法
  • docker打包容器 在另一个机器上运行
  • 2023年全国最新保安员精选真题及答案9