javascript - 如何在Javascript中快速从字符串生成数组

标签 javascript arrays ruby string

在 ruby​​ 中,我可以使用以下代码生成从 a 到 z 的字符串数组:

alphabet = ('a'..'z').to_a
=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

Javascript中有类似的函数调用吗?

最佳答案

不幸的是,ECMAScript 在其标准库中没有 Range。但是,您可以做的是使用 Array.from工厂函数使用映射函数构造Array

类似这样的事情:

const alphabet = Array.from({ length: 26 }, (_, i) => i + 97).map(String.fromCharCode);

或者,没有魔数(Magic Number):

const charCodeOfA = "a".charCodeAt(0),                //=>  97
    charCodeOfZ = "z".charCodeAt(0),                  //=> 122
    lengthOfAlphabet = charCodeOfZ - charCodeOfA + 1, //=>  26

    alphabet = Array.from({ length: lengthOfAlphabet }, (_, i) => i + charCodeOfA).
        map(String.fromCharCode);

在 ECMAScript 的 future 版本中,最好使用 do expressions避免这些临时辅助变量污染命名空间:

const alphabet = do {
    const charCodeOfA = "a".charCodeAt(0),                //=>  97
        charCodeOfZ = "z".charCodeAt(0),                  //=> 122
        lengthOfAlphabet = charCodeOfZ - charCodeOfA + 1; //=>  26

    Array.from({ length: lengthOfAlphabet }, (_, i) => i + charCodeOfA).
        map(String.fromCharCode)
}

关于javascript - 如何在Javascript中快速从字符串生成数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56284472/

相关文章:

javascript - VueJS、Vuex、Getter 显示为空数组,但 console.log 显示它是一个包含所有值的对象

javascript - 在 Artillery 中跨 YAML 文件使用全局变量

java - 我的输入数组不断地 self 写入

javascript - 如何为数组中的多个对象设置一个属性,但在 vue js 中保留单独的 react 性

ruby-on-rails - 我可以在 :all with capybara? 之前使用吗

ruby - 如何在 ruby​​1.8 中重写正则表达式 (?<!...)。 (重新实现 wpautop 功能)

javascript - 使用 "Hidden Form"验证电子邮件?

javascript - 使用 ".click()"仍会触发禁用按钮

java - 使用java计算增量平均值

ruby - 如何将方法动态定义为私有(private)?