es6 数组对象新增方法 Array.from()将两类对象转为真正的数组
2016-11-17 11:52
627 查看
Array.from方法用于将两类对象转为真正的数组:类似数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的数据结构 Set 和Map )。
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES5 的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6 的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
// NodeList 对象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
});
// arguments 对象
function foo() {
var args = Array.from(arguments);
// ...
}
Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']
let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']
Array.from({ length: 3 });
// [ undefined, undefined, undefined ]
Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
Array.from(arrayLike, x => x * x);
// 等同于
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]
值得提醒的是,扩展运算符(...)也可以将某些数据结构转为数组。// arguments 对象
function foo() {
var args = [...arguments];
}
// NodeList 对象
[...document.querySelectorAll('div')]
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES5 的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6 的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
// NodeList 对象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
});
// arguments 对象
function foo() {
var args = Array.from(arguments);
// ...
}
Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']
let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']
Array.from({ length: 3 });
// [ undefined, undefined, undefined ]
Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
Array.from(arrayLike, x => x * x);
// 等同于
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]
值得提醒的是,扩展运算符(...)也可以将某些数据结构转为数组。// arguments 对象
function foo() {
var args = [...arguments];
}
// NodeList 对象
[...document.querySelectorAll('div')]
相关文章推荐
- es6 Array数组对象新增方法 Array.of()
- ES6中数组array新增方法实例总结
- ES6---数组array新增方法
- 将对象转为数组方法:延伸array_map函数在PHP类中调用内部方法
- 观V8源码中的array.js,解析 Array.prototype.slice为什么能将类数组对象转为真正的数组?
- JavaScript里的数组转化新方法Array.From
- JSONArray 数组 在不转为对象的情况下取出 某个元素组成列表
- js使用Array.prototype.sort()对数组对象排序的方法
- JavaScript里的数组转化新方法Array.From
- Array.prototype.sort()对数组对象排序的方法
- 给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组
- Ajax调用返回json数组,对象 (JSONArray.fromObject)
- 用Array.isArray();方法来检查对象是否是数组
- PHP中把stdClass Object转array(对象转数组)的几个方法
- ES6数组去重的最佳实践:Set结合Array.from() | 拓展运算符结合 Set
- array数组扩展方法二、-- 数组中的对象元素进行归类,参数值相同的对象放在一起,以数组第一个元素为准
- JavaScript数组Array对象增加和删除元素方法总结
- js使用Array.prototype.sort()对数组对象排序的方法
- 请给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个仅包含被删除的重复条目的新数组。
- leetCode 26.Remove Duplicates from Sorted Array(删除数组重复点) 解题思路和方法