数组中常用的属性
length
数组中常用的方法
- concat 数组合并 (es6的扩展运算符)
- reverse() 数组反转
- sort() 数组排序
- splice() 数组截取和添加替换(两个参数代表的是删除,三个删除代表的是替换或者添加,当第二个参数为0事,表示添加)- 第二个参数代表删除的个数或者替换的个数(替换的个数大于原数组的部分长度,只取原数组的最大长度),第三个参数代表的是替换的元素
- slice() 截取数组(开始索引和结束索引之间,包括开始索引不包括结束索引)
- pop 数组删除,返回被删除的尾元素,会该变原数组
- unshift 数组添加,返回数组的长度,会该变原数组
- shift 数组删除 返回被删除的首元素,会该变原数组
- push 数组添加,返回数组的长度,会该变原数组
- forEach() 数组循环,没有返回值
- filter() 数组筛选,返回符合条件的数组
- some() 有一个符合条件即为true,返回值为boolean
- every() 全部符合条件的为true,返回值为boolean
- map() 数组整理
- copyWithin(target,start,end) 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中。第一个参数代表索引,第二个参数是目标的索引位置,第三个参数代表被复制替代的个数,会该变原数组
- find() 返回符合该条件的对象或者字符串
- findIndex() 返回值为1或者-1
- Array.isArray() 判断是否是数组
- Object.prototype.toString.call() 判断是否是数组
- instanceOf 判断是否是数组
- reduce 数组累加器
- reduceRight() 反向累加
- fill() 数组填充
- flat() 拉平数组 Infinity 拉平嵌套深的数组
- flatMap() 对原数组的每个成员执行一个函数 [2, 3, 4].flatMap((x) => [x, x * 2]) // [2, 4, 3, 6, 4, 8]
- join() 数组转换为字符串
- includes() 用来判断一个数组中是否包含指定的值,有返回为true,没有返回为false
- indexOf() 返回某个指定字符串在数组中首次出现的位置,没有返回为-1
- lastIndexOf() 方法在数组中搜索指定项目,并返回其位置未指定开始位置,则从末尾开始,并在数组的开头结束搜索
- Object.keys() 返回索引
- Object.values() 返回值
- Object.entries() 返回键值对的二维数组
- copyWithin(target,start,end)
target 必需。复制到指定目标索引位置。
start可选。元素复制的起始位置。
end 可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。
附加:字符串的方法 slice 和subtring 和 substr() 当为一个参数时候,作用相同,都是截取到最后
- slice(params1,params2) // startIndex,endIndex 不包括结束索引
- substring(params,params) // startIndex,endIndx 不包括结束索引
- substr(params1,params2) // statrIndex,endNum 第二个参数代表截取的个数
indexOf和includes区别
- 数组中如果为空值,includes会认为true,而indexOf()不会
var ary1 = new Array(3);
console.log(ary1.indexOf(undefined));//-1
console.log(ary1.includes(undefined))//true
- 数组中如果有NaN,indexOf是无法判断的
var ary1 = [NaN];
console.log(ary1.indexOf(NaN))//-1
console.log(ary1.includes(NaN))//true
数组中的indexOf和includes和字符串的indexOf和includes区别
字符串在传入的参数不是字符串的时候,会进行类型转换,而数组的不会