当前位置: 首页 > 面试题库 >

创建指定范围内的字符数组

许俊晤
2023-03-14
问题内容

我读了一些在Ruby中这样做的代码:

puts ('A'..'Z').to_a.join(',')

输出:

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可以做到的呢?如果没有,是否有Node模块允许类似的东西?


问题答案:

Javascript本身没有该功能。您可以在下面找到一些如何解决的示例:

正常功能,基本平面中的任何字符(不检查代理对)

function range(start,stop) {
  var result=[];
  for (var idx=start.charCodeAt(0),end=stop.charCodeAt(0); idx <=end; ++idx){
    result.push(String.fromCharCode(idx));
  }
  return result;
};

range('A','Z').join();

与上面相同,但是作为添加到数组原型的函数,因此可用于所有数组:

Array.prototype.add_range = function(start,stop) {
  for (var idx=start.charCodeAt(0),end=stop.charCodeAt(0); idx <=end; ++idx){
    this.push(String.fromCharCode(idx));
  }
  return this;
};

[].add_range('A','Z').join();

预选字符的范围。比上面的函数要快,并且可以alphanum_range('A','z')用来表示AZ和az:

var alphanum_range = (function() {
  var data = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.split('');
  return function (start,stop) {
    start = data.indexOf(start);
    stop = data.indexOf(stop);
    return (!~start || !~stop) ? null : data.slice(start,stop+1);
  };
})();

alphanum_range('A','Z').join();

或ascii范围内的任何字符。通过使用缓存的阵列,它比每次构建阵列的功能都快。

var ascii_range = (function() {
  var data = [];
  while (data.length < 128) data.push(String.fromCharCode(data.length));
  return function (start,stop) {
    start = start.charCodeAt(0);
    stop = stop.charCodeAt(0);
    return (start < 0 || start > 127 || stop < 0 || stop > 127) ? null : data.slice(start,stop+1);
  };
})();

ascii_range('A','Z').join();


 类似资料:
  • 问题内容: 如何指定从(空格)到Unicode字符的范围? 我有一个类似的正则表达式,它不会编译说这是一个错误的范围。我是Unicode正则表达式的新手,所以我以前从未遇到过此问题。 有没有办法使我忘记或尚未学习的编译或正则表达式? 问题答案: unicode范围的语法不会达到您的期望。 原始字符串可防止对转义进行解析,而正则表达式引擎将不执行此操作。此集合中的唯一范围是: in literal

  • 对于我的Java类,我正在编写一个小程序,首先选择一个介于1和100之间的数字。然后,它会提示用户开始猜测正确的。如果用户对的猜测过高或过低,程序会打印出一个新范围,供他们在该范围内进行猜测。如果用户输入或,程序只需重新要求用户输入,但不会以任何方式更改范围。 示例输出(当机密号为20时)如下所示: 该项目似乎已经基本完成,但只有一个例外。其中一个要求是,当用户键入的超出我们给定的1和100范围时

  • Python3 实例 素数(prime number)又称质数,有无限个。除了1和它本身以外不再被其他的除数整除。 以下实例可以输出指定范围内的素数: 实例(Python 3.0+)#!/usr/bin/python3 # 输出指定范围内的素数 # take input from the user lower = int(input("输入区间最小值: ")) upper = int(input(

  • 问题内容: 我想将数字限制在一定范围内。目前,我正在执行以下操作: 这样可以将其保留在和中,但看起来不太好。我怎样才能做得更好? PS:仅供参考,我正在使用Python 2.6。 问题答案: def clamp(n, minn, maxn): return max(min(maxn, n), minn) 或功能等效: 现在,您使用: 或者说得很清楚: 更清晰:

  • 问题内容: 我有一个表,其中的行带有范围的开始和结束编号,例如 等等.. 我想创建一个临时表(或表变量/ cte等),其中每个数字都有一行,并且它们之间的范围也包括在内-即给出上述示例,我希望看到一个具有以下行的表: 谁能指出我朝着实现这一目标的快捷方式的方向?我考虑过以某种方式使用数字表,但是我正在查看的表具有> 200m行,而我没有那么大的数字表! 任何帮助深表感谢。提前致谢。 问题答案:

  • 我想知道列表中是否有一个等效语句来执行以下操作。在MATLAB中,我将执行以下操作 简而言之,我有一个初始值,一个最终值和一个增量。我需要创建一个数组(我读到它相当于python中的列表)并打印到文件中。