js-Array.from()
例⼦1——将类数组转换为数组
let array = {
0: 'name',
1: 'age',
2: 'sex',
3: ['user1','user2','user3'],
'length': 4
}
let arr = Array.from(array )
console.log(arr) // ['name','age','sex',['user1','user2','user3']]
如果将上⾯代码中length属性去掉arr将会是⼀个长度为0的空数组,如果将代码修改⼀下,就是具有length属性,但是对象的属性名不再是数字类型的,⽽是其他字符串型的,代码如下:
let array = {
'name': 'name',
'age': 'age',
'sex': 'sex',
'user': ['user1','user2','user3'],
'length': 4
}
let arr = Array.from(array )
console.log(arr) // [ undefined, undefined, undefined, undefined ]
例⼦2:——将Set解构的数据转换为数组
let arr = [1,2,3,4,5,6,7,8,9]
let set = new Set(arr)
console.log(Array.from(set)) // [1,2,3,4,5,6,7,8,9]
例⼦3——将字符串转换为数组
let str = 'hello world!';
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]
求和Sum
function sum() {
// Array.from()将arguments类数组转换为真数组
// 也可以使⽤Array.prototype.slice.call(arguments) , 这是ES5语法,兼容性更好
return Array.from(arguments).reduce((prev, cur) => {
js arguments
return prev + cur
}, 0)
}
console.log(sum(1,2,3,4,5,6)); // 21
去重
function unique(array) {
// 亦可以直接return [...new Set(array)],彻底的ES6语法
return Array.from(new Set(array))
}
console.log(unique([1,2,2,3,3,5])); // [1, 2, 3, 5]
数组递增
function range(ends) {
return Array.from({length: ends}, (_, i) => i + 1)
}
console.log(range(3)); // [1, 2, 3]
利⽤Array.from() 可以将Unicode编码拆解成数组。console.log(Array.from('\u6211\u7231\u6572\u4ee3\u7801'))
//(5) ["我", "爱", "敲", "代", "码"]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论