admin管理员组

文章数量:1406139

I want to make an array containing all the letters and numbers on the keyboard (+ !, @, #, $, %, &, etc.) via code, without declaring it. Is there any way to do this in js?

I want to make an array containing all the letters and numbers on the keyboard (+ !, @, #, $, %, &, etc.) via code, without declaring it. Is there any way to do this in js?

Share Improve this question asked Feb 11, 2022 at 18:29 Matei PieleMatei Piele 6305 silver badges16 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 8

This will give characters that are displayable on the screen.

let characters = [];

for (let i=32; i<127; i++)
  characters.push( String.fromCharCode(i) );

I like 1 liners so

const characters = [...Array(95).keys()].map(i => String.fromCharCode(i+32))

Breakdown for those interested to know whats happening:

  • Array(95).keys() creates an iterator object with 95 items in it.
  • Because its wrapped in brackets []:
    • The spread syntax before it (...) iterates those objects into an array.
  • This results in a numbered array from 0 to 94. ie. [0,1,2,3,...,94]
  • Next you map the data from the array into the String.fromCharCode method.
    • Since we want only printable characters (starting from ascii code 32) we add 32 to each number in the source array before piping it into the fromCharCode method.

I've gotten really used to doing this for almost everything because its much faster than writing out a for loop for things. Granted it's slower than a for loop for performance (I think). Usually, I'm not writing code for performance.

There are 95 characters so you can make an array of 95 elements and map the items to the String char code that matches the index + 32.

const characters = Array.from(Array(95), (val,i) => String.fromCharCode(i+32))

本文标签: javascriptMake an array with every character on keyboardStack Overflow