JS数组方法

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数组的那些方法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值