js Array方法总结
修改器方法(9)
copyWithin(target: number, start: number, end?: number): this;
// 浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。
fill(value: T, start?: number, end?: number): this;
// 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
pop(): T | undefined;
// 后删,返回被删元素。
push(...items: T[]): number;
// 后加,返回length。
shift(): T | undefined;
// 前删,返回被删元素。
unshift(...items: T[]): number;
// 前加,返回length。
splice(start: number, deleteCount?: number): T[];
// 在任意的位置给数组添加或删除任意个元素。
reverse(): T[];
// 反转。
sort(compareFn?: (a: T, b: T) => number): this;
// 排序。
访问方法(11)
flat();
// 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
flatMap();
// 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 和 深度值1的 flat 几乎相同,但 flatMap 通常在合并成一种方法的效率稍微高一些。
concat(...items: ConcatArray<T>[]): T[];
// 返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
slice(start?: number, end?: number): T[];
// 抽取当前数组中的一段元素组合成一个新数组。
join(separator?: string): string;
// 连接所有数组元素组成一个字符串。
toString(): string;
// 返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的 Object.prototype.toString() 方法。
toLocaleString(): string;
// 返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的 Object.prototype.toLocaleString() 方法。
indexOf(searchElement: T, fromIndex?: number): number;
// 返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 - 1。
lastIndexOf(searchElement: T, fromIndex?: number): number;
// 返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 - 1。
includes(searchElement: T, fromIndex?: number): boolean;
// 判断当前数组是否包含某指定的值,如果是返回 true,否则返回 false。
toSource();
// 返回一个表示当前数组字面量的字符串。遮蔽了原型链上的 Object.prototype.toSource() 方法。
迭代方法(12)
在每一个数组元素都分别执行完回调函数之前,数组的length属性会被缓存在某个地方。所以迭代时慎重改变数组长度。
forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
// 为数组中的每个元素执行一次回调函数。
map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
// 返回一个由回调函数的返回值组成的新数组。
filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];
// 将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回。
every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
// 如果数组中的每个元素都满足测试函数,则返回 true,否则返回 false。
some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
// 如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
// 从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
// 从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;
// 找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 undefined。
findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;
// 找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 - 1。
entries(): IterableIterator<[number, T]>;
// 返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。
keys(): IterableIterator<number>;
// 返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。
values(): IterableIterator<T>;
// 返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。
数组检测
ECMAScript 3 instanceof
instanceof 操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的 Array 构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。
ECMAScript 5 isArray
js Array方法总结的更多相关文章
- js Array 方法总结
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- js中Array方法归类解析
为什么要对Array方法进行归类解析 因为它常用,而且面试必问 改变原数组的方法 pop 删除并返回数组最后一个元素push 从末尾给数组添加元素,返回新数组length值reverse 颠倒数组元素 ...
- S5中新增的Array方法详细说明
ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...
- JS扩展方法——字符串trim()
转自:http://www.cnblogs.com/kissdodog/p/3386480.html <head> <title>测试JS扩展方法</title> ...
- Js apply 方法 详解
Js apply方法详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
- ES5中新增的Array方法详细说明
一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (j ...
- js一些方法的扩展
//JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. //下面给出 ...
- JS扩展方法
JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...
- js Array数组的使用
js Array数组的使用 Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元 ...
随机推荐
- 吴裕雄--天生自然HTML学习笔记:HTML 速查列表
HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head& ...
- Android开发之《硬件加速》
Intel® SDK for OpenCL™ Applications Support:https://software.intel.com/en-us/intel-opencl-support/co ...
- mvn -v报java.lang.ClassNotFoundException
Tips: 比如要下载版本3.2.5的,请选择binaries下的apache-maven-3.2.5-bin.zip. binaries 指的是可以执行的. source 指的源码. 下载地址:ht ...
- Python测试开发-创建模态框及保存数据
Python测试开发-创建模态框及保存数据 原创: fin 测试开发社区 前天 什么是模态框? 模态框是指的在覆盖在父窗体上的子窗体.可用来做交互,我们经常会看到模态框用来登录.确定等等,到底是怎 ...
- Android编程权威指南第三版 第32章
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_35564145/article/de ...
- 两个不错的IT类优质号
虽然标题已经被用烂了,但是我觉得还是用这样的方式介绍这两个不错的公众号,可能你们刚好需要,我刚好知道,仅此而已. 刚认识的一个小哥哥和一个小姐姐,他们都非常优秀,有喜欢Java和Linux的同学千万不 ...
- MIZ702N开发环境的准备1
前言 最近由于工作需要开始接手基于MIZ702的硬件平台的Linux的开发,仔细想想,工作这么久,这好像还是我第一次接手嵌入式Liunx相关的工作.这几天拿到开发板,开始了阅读文档.安装Ubuntu虚 ...
- [工具] Docker安装及portainer GUI
一.Docker Engine安装 1.安装流程 1)移除旧版本(如果有旧版本) yum remove docker \ docker-client \ docker-client-latest \ ...
- org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: '\xE2\x80\x8B\xE2\x80\x8B...' for column 'pro_backgroud' at row
如果你在mysql数据库中,将所有的表的编码格式设置成为utf-8之后还是不行,那就试试这个吧:ALTER TABLE your_database_name.your_table CONVERT TO ...
- LeetCode 题解 | 面试题 10.01. 合并排序的数组
给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序. 初始化 A 和 B 的元素数量分别为 m 和 n. 示例: 输入: A = [ ...