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(): 创建指定元 ...
随机推荐
- SHELL用法七(Sed语句)
1.SHELL编程Sed语句案例实战 1)SHELL编程四剑客之二的Sed工具,主要是用于Linux系统文本文件的编辑. 打印的,也称为非交互模式编辑器(vi|vim交互模式编辑器),Sed工具的语法 ...
- Android开发之《RXJava的简单实现》
import android.util.Log; import rx.Observable; import rx.Subscriber; import rx.functions.Action1; pu ...
- MOOC(2)-Django开发get、post请求,返回json数据
1.对get请求直接返回参数 如果请求多个参数,也只能返回一个参数,这里只返回了username参数 如果想要返回多个参数值,可以返回json格式数据 2.对get请求返回json数据 # views ...
- R的基础数据结构
- 序列化模块ModelSerializer上补充及ListSerializer
整体单改 路由层.模型层.序列化层不需要做修改,只需要处理视图层:views.py """ 1) 单整体改,说明前台要提供修改的数据,那么数据就需要校验,校验的数据应该在 ...
- JXJJOI2018_T2_tank
题目描述 Lemon最近迷上了一款坦克对战游戏.在这款游戏中,Lemon需要驾驶一辆坦克与敌军对战. 坦克有很多不同的武器,每种武器有各自的特点,而Lemon所要做的就是合适地发射这些武器,对敌军造成 ...
- 吴裕雄--天生自然KITTEN编程:青蛙答题过河
- python 内置方法、数据序列化
abc(*args, **kwargs) 取绝对值 def add(a,b,f): return f(a)+f(b) res = add(3,-6,abs) print(res) all(*args, ...
- Python实现链表倒序(带头指针)
class ListNode(object): def __init__(self, x): self.val = x self.next = None def reverseList(self, h ...
- Laravel Study(使用 Laravel )
開始 伺服器及相關工具安裝自行建立,在伺服器跟目錄下 有兩種方式建立 Laravel 專案,這裡使用 composer 建立專案 使用 composer 要在 PHP 5.3.2 以上才能使用 com ...