JS数组之Array.from

JS数组之Array.from

Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。

  1. 首先、我们从可迭代对象入手,我们知道JS里可迭代对象有:字符串、 数组、Map、 Set、generator,他们都属于ES6标准引入了新的iterable类型 注意:对象不属于iterable类型
示例
    var arr = ['Marry', 'Jack', 'Tony', 'Rose'];
    var myMap = new Map([['a',1], ['b', 2]]);
    var mySet = new Set(["A","B","C"]);
    function *play() {
        let a = 0;
        while (a < 5) {
            yield ++a
        }
    }
    const num = play();

    // 数组迭代
    for (let i of arr) {
        console.log(i) // Marry Jack Tony Rose
    }
    // Map迭代
    for (let i of myMap) {
        console.log(i) //  ["a", 1]  ["b", 2]
    }
    // Set迭代
    for (let i of mySet) {
        console.log(i) // A B C
    }
    // arr迭代
    for (let i of 'arr') {
        console.log(i) // a r r
    }
    // generator 迭代
    for (let i of num ) {
        console.log(i) // 1 2 3 4 5
    }

2.接下来我们来看Array.from 示例

    var arr = ['Marry', 'Jack', 'Tony', 'Rose'];
    var myMap = new Map([['a',1], ['b', 2]]);
    var mySet = new Set(["A","B","C"]);
    function *play() {
        let a = 0;
        while (a < 5) {
            yield ++a
        }
    }
    const num = play();

    console.log(Array.from(arr)); // ['Marry', 'Jack', 'Tony', 'Rose'];
    console.log(Array.from(myMap)); // [['a',1],['b',2]]
    console.log(Array.from(mySet)); // ["A", "B", "C"]
    console.log(Array.from(num));  // [1, 2, 3, 4, 5]
    console.log(Array.from("arr")); // ["a", "r", "r"]
    // 类数组 arguments 
     // arguments
    function a() {
        console.log(Array.from(arguments)) // [123,456]
    }
    a(123,456)
	// Array 中的箭头函数
    console.log(Array.from([1,2,3], x => `第${x}项`));  // ["第1项", "第2项", "第3项"]
实例
 
    // 示例 数组去重并合并
    
    function combine() {
        const arr = [].concat(...Array.from(arguments));
        return Array.from(new Set(arr));
    }

    console.log(combine([1,2,3,4], [1,2,4,5])); // [1, 2, 3, 4, 5]
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值