JS中的数组方法——原型方法
原数组发生改变:
push()、pop()、unshift()、shift()、split()、copyWithin()、reverse()、sort()、fill()
原数组不发生改变:
concat()、slice()、indexOf()、lastIndexOf()、join()、includes()、toString()、toLocalString()
原数组是否发生改变由callback决定:
every()、some()、filter()、map()、forEach()、reduce()、reduceRight()、find()、findIndexOf()
数组的创建有三种方式:构造函数方式、字面量方式、ES6新增的Array.of()方法创建。
1、构造函数方式:
let arr = new Array(); // 创建一个空数组 let arr = new Array(10); // 创建长度为10的数组 let arr = new Array('a'); // 创建包含一个字符串元素a的数组 let arr = new Array(10, 'a'); // 创建包含10和字符串a两个元素的数组
小结:
1.new 关键字是可省略的
2.当只传一个number类型参数时,创建的是参数指定长度的数组。即构造函数形式创建数组,不能创建只包含一个number类型元素的数组2、字面量方式
let arr = [10, 'a']; // 字面量方式,即直接给数组赋值
3、Array.of()方法(ES6新增):
方法的作用是将一组值(即传进来的参数)转换为数组。
这个方法弥补了构造函数创建数组的不足。可以实现创建只有一个number类型元素的数组。
let arr = Array.of(3); console.log(arr); // [3] // 参数可以是各种类型 let arr1 = Array.of(1, 'a', true, null, undefined, {name: "zhangsan"}, [45]); console.log(arr1); // [ 1, 'a', true, null, undefined, { name: 'zhangsan' }, [ 45 ] ]
Array.from():
作用:将类数组转化为数组
参数:arrayLike[, mapFn[, thisArg]]
参数说明:
- arrayLike:类数组对象,可以是我们常见的nodeList、arguments、字符串、iterable对象等
- mapFn: 对转化后的数组进行操作的回调函数
- thisArg: 指定mapFun中的this
返回值:转化后的数组,如果有mapFn,则返回结果是经过mapFn处理的数组
原类数组是否改变:不使用mapFn,则类数组不改变。使用mapFn则结果同上述迭代方法中使用callback的情况一致。
let str = 'hello'; let temp = Array.from(str); console.log(str, temp); // hello [ 'h', 'e', 'l', 'l', 'o' ] let temp1 = Array.from(str, (item, index) => { return item.toUpperCase(); }); console.log(str, temp1); // hello [ 'H', 'E', 'L', 'L', 'O' ]
小结:
Array.from() 等价于 Array.prototype.slice.call(arguments,0)
~~~分割线~~~
作者:依米花开
链接:https://juejin.im/post/5acb6186518825556a72b79b
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
参考文章:你真的了解JS数组的那些方法吗?