特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)
ES6给数组添加了一些新特性,而这些新特性到目前为止完全可以运用到自己的业务层。在这一节中将总结有关于ES6给数组提供一些新特性的使用方法。
ES6提供的两个静态方法:
Array.from
Array.of
ES6提供操作、填充和过滤数组的方法:
Array.prototype.copyWidthin
Array.prototype.fill
Array.prototype.find
Array.prototype.findIndex
ES6中有关于数组迭代的方法:
Array.prototype.keys
Array.prototype.values
Array.prototype.entries
Array.prototype[Symbol.iterator]
接下来主要看看这些方法的使用。
Array.from()
Array.from()
方法主要用于将两类对象(类似数组的对象[array-like object]和可遍历对象[iterable])转为真正的数组。
在ES5中常常使用下面这样的方法将一个类似数组的对象转换成一个数组:
function cast () {
return Array.prototype.slice.call(arguments);
}
cast('a','b','c','d'); // ["a", "b", "c", "d"]
或者你也可以写成:
function cast () {
return [].slice.call(arguments);
}
cast('a','b','c','d'); // ["a", "b", "c", "d"]
在ES6中可以使用Array.from
将一个类似数组的对象转换为一个真正的数组。
所谓类似数组的对象,本质特征只有一点,即必须有
length
属性。因此,任何有length
属性的对象都是类似数组对象,都可以通过Array.from
方法将其转换成一个真正的数组。
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
}
console.log(Array.from(arrayLike)); // ["a","b","c"]
在ES6中,扩展运算符(...
)也可以将某些数据结构转为数组。只不过它需要在背后调用遍历器接口Symbol.iterator
。
function cast (){
return [...arguments]
}
cast('a','b','c'); // ["a","b","c"]
值得注意的是如果一个对象没有部署遍历器接口,使用扩展运算符是无法将类似数组对象转换成数组。
Array.from
接受三个参数,但只有input
是必须的:
input
: 你想要转换的类似数组对象和可遍历对象map
: 类似于数组的map
方法,用来对每个元素进行处理,将处理后的值放入返回的数组context
: 绑定map
中用到的this
只要是部署了iterator
接口的数据结构,Array.from
都能将其转为数组:
let arr = Array.from('w3cplus.com')
console.log(arr); // ["w","3","c","p","l","u","s",".","c","o","m"]
let namesSet = new Set(['a', 'b'])
let arr2 = Array.from(namesSet)
console.log(arr2); //["a","b"]
上面的代码,因为字符吕和Set结构都具有
如需转载,烦请注明出处:https://www.w3cplus.com/javascript/es6-array-methods.html
如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!