JS数组、对象常用函数汇总

数组常用函数:

函数名(Arrary原型链上)是否改变原数组返回值参数描述
push新的长度新元素1,新元素2…向末尾添加多个元素
unshift新的长度新元素1,新元素2…向开头添加多个元素
pop最后一个元素删除最后一个元素
shift第一个元素删除第一个元素
slice新数组开始的索引,结束的索引(不包含)提取指定的元素
splice被删除的元素数组开始的索引,删除的数量,新元素1,新元素2…删除指定元素,并可添加新元素(插入替换)
concat新数组需要连接的数组/元素1,需要连接的数组/元素2…连接多个数组
toString连接后的字符串数组转字符串(用,隔开)
join连接后的字符串连接符(字符串)数组转字符串
reverse修改后的数组本身颠倒顺序
sort排序回调函数(对比元素1,对比元素2)用于数组排序,若返回大于0的值会交换位置
map新数组回调函数((item,index,array) => newItem),thisArg映射
filter新数组回调函数((item,index,array) => true(保留)/false(剔除)),thisArg过滤器
reduce汇总结果lastTemp回调函数((temp,item,index,array) => newTemp),initialValue汇总
reduceRight汇总结果lastTemp回调函数((temp,item,index,array) => newTemp),initialValue汇总(从右到左)
forEach回调函数((item,index,array) => {…}),thisArg循环迭代 遍历
every检查结果(Boolean)回调函数((item,index,array) => true(继续)/false(退出循环)),thisArg检查是否所有值都满足要求
some检查结果(Boolean)回调函数((item,index,array) => true(退出循环)/false(继续)),thisArg检查是否有任意值都满足要求
indexOf元素下标检索的元素值,开始查找的位置检索数组中的某个元素值
lastIndexOf元素下标检索的元素值,开始查找的位置检索数组中的某个元素值(右往左)
find第一个满足条件返回true的元素回调函数((item,index,arr) => true(返回item)/false(继续搜索)),thisArg查找元素
findIndex第一个满足条件返回true的元素下标回调函数((item,index,arr) => true(返回item)/false(继续搜索)),thisArg查找元素下标
includes检查结果(Boolean)检索的元素值,开始查找的位置判断数组中是否包含指定的value
values一个新的 Array 迭代对象返回Array Iterator对象(含数组每个索引的值),不兼容IE
entries一个新的 Array 迭代器对象返回Array Iterator对象(含数组每个索引的键值对),不兼容IE
flat新数组递归深度(默认1)扁平化嵌套数组,不兼容IE
flatMap新数组和map一样的回调函数((item,index,array) => newItem),thisArg使用映射函数映射每个元素后将结果压缩成一个新数组
copyWithin复制后的数组目标位置(复制到此),复制起始下标,复制结束下标(不包含)浅复制数组的一部分到同一数组中的另一个位置,不兼容IE
Array.from新数组字符串或类数组或对象(具有length属性和数字下标键),map回调函数,thisArg将一个类数组或对象转换成一个真正的数组,不兼容IE
Array.of新数组新元素1,新元素2…将一系列值转换成数组
Array.isArray检查结果(Boolean)被测对象检查对象是否为数组

对象常用函数:

函数名(蓝色Arrary原型链上)是否改变原对象返回值参数描述
create带指定原型对象和属性的新对象原型对象,{属性名:{描述符…},…}指定对象为原型创建新的对象(创建一个干净的对象)
defineProperty被修改对象被修改对象,属性名,描述符添加或更改对象属性
defineProperties被修改对象被修改对象,{属性名:{描述符…},…}添加或更改多个对象属性
preventExtensions处理后的对象被处理的对象拓展性,防止属性拓展(不可拓展属性)
isExtensible检查结果(Boolean)被处理的对象判断是否可拓展
seal处理后的对象被处理的对象密封,防止更改对象属性(不可拓展/删除属性)
isSealed检查结果(Boolean)被处理的对象判断是否密封
freeze处理后的对象被处理的对象冻结,防止进行任何更改(不可拓展/删除属性/修改值)
isFrozen检查结果(Boolean)被处理的对象判断是否冻结
getOwnPropertyDescriptors{属性名:{描述符…},…}对象返回所有属性描述符(不含原型链),不兼容IE
getOwnPropertyDescriptor其属性描述符对象{描述符…}对象,属性名访问属性
getOwnPropertyNames自身对象的所有属性名数组对象以数组返回对象自身所有属性名(不包括Symbol和原型链上属性,包含非枚举属性)
getPrototypeOf给定对象的原型对象访问原型,相当于对象.__proto__
getOwnPropertySymbols自身对象的所有Symbol属性数组对象返回一个给定对象自身的所有Symbol属性的数组。不兼容IE
keys属性名数组(可枚举)对象返回给定对象的自身可枚举属性组成的数组
values值数组(可枚举)对象返回一个给定对象自身的所有可枚举属性值的数组,不兼容IE
entries键值对[属性名,值]数组(可枚举)对象返回一个给定对象自身可枚举属性的键值对[key,value]数组,不兼容IE
fromEntries新对象可迭代对象把键值对列表转换为一个对象。不支持IE、安卓Opera
is检查结果(Boolean)被比较value1,被比较value2判断两个值是否为同一个值
assign目标对象(被改原对象)目标对象,源对象1,源对象2…将源对象的属性复制到目标对象上
hasOwn检查结果(Boolean)对象,属性名判断是否含有指定属性(不包括继承原型链上),仅火狐支持
setPrototypeOf被设置对象被设置对象,新的原型对象设置一个指定的对象的原型
hasOwnProperty检查结果(Boolean)对象,属性名判断是否含有指定属性(不包括继承原型链上)
isPrototypeOf检查结果(Boolean)被测的另一个对象测试一个对象是否存在于另一个对象的原型链上
propertyIsEnumerable检查结果(Boolean)被测属性测试指定的属性是否可枚举
toString字符串返回一个表示该对象的字符串
valueOf该对象的原始值返回指定对象的原始值