zoukankan      html  css  js  c++  java
  • [Javascript] Compare a Generator to Using Array Map and Filter

    Generators offer flexible alternatives to working with arrays and how you want to iterate through the data. While most scenarios are covered by the methods included on Arrays such as "map" and "filter", generators are great for covering complex scenarios when writing all your logic in map and filter functions might become difficult.

    let names = ["John", "Mindy", "Sally"]
    
    let result = names.filter(name => name.includes("y")).map(name => name.toLocaleLowerCase())
    console.log(result) // ["mindy", "sally"]
    
    // -- Generator --
    
    function* format(array: string[]) {
        for (let name of array) {
            if (name.includes("y")) {
                yield name.toLowerCase();
            }
        }
    }
    
    console.log([...format(names)]); //["mindy", "sally"]

    With Generator, we can do more control on result.

    let names = ["John", "Mindy", "Sally"]
    
    let result = names.filter(name => name.includes("y")).map(name => name.toLocaleLowerCase())
    console.log(result) // ["mindy", "sally"]
    
    // -- Generator --
    
    function* format(array: string[]) {
        for (let name of array) {
            if (name.includes("y")) {
                yield name.toLowerCase(); // ["mindy", "sally"]
                yield name.toUpperCase(); // ["mindy", "MINDY", "sally", "SALLY"]
                yield* array; // ["mindy", "MINDY", "John", "Mindy", "Sally", "sally", "SALLY", "John", "Mindy", "Sally"]
                yield 'END'; // ["mindy", "MINDY", "John", "Mindy", "Sally", "END", "sally", "SALLY", "John", "Mindy", "Sally", "END"]
            }
        }
    }
    
    console.log([...format(names)]);
  • 相关阅读:
    性能测试工具LoadRunner19-LR之Controller IP欺骗
    JavaScript—06数组与函数
    JavaScript—05流程控制与代码规范要求
    JavaScript—04运算符
    JS做简单的留言板
    JavaScript—03 变量与数据类型
    JavaScript—02 JS组成及注释等
    JavaScript—01汇编语言和计算机基础脑图
    01移动端布局基础-脑图
    解决粘包-复杂版
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12168027.html
Copyright © 2011-2022 走看看