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)]);
  • 相关阅读:
    linux 压缩当前文件夹下所有文件
    redis从入门到精通
    焦点小组测试和可用性测试
    面包屑的故事
    VSCode导入两个工程示例
    数据库规格化
    mergeCI一点小波澜
    Java中List与Set相互转化
    MyBatis中in的使用
    长寿时代的养老风险管理
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12168027.html
Copyright © 2011-2022 走看看