使键等于所有 ASCII 字符的字典

make dictionary with keys equal to all ASCII characters

我需要为 ASCII 中 0x20 和 0x7F 之间存在的每个字符创建一个带有键的字典。所以 "a"、"b"、"A"、"*" 等并且值必须是一个空数组。

在 Javascript 中最有效的方法是什么?

谢谢

我建议使用 for 循环。

var object = {},
    i;

for (i = 32; i < 128; i++) {
    object[String.fromCharCode(i)] = [];
}

document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

您可以将ascii字符存储在变量中,拆分并减少:

var chars = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var dict = chars.split('').reduce(function(r, ch) {
    r[ch] = [];
    return r;
}, {});

如果您正在寻找执行此操作的最有效方法,只需使用对象字面量:

var dict = {
    "~": [], "}": [], "|": [], "{": [], "z": [], "y": [], "x": [], "w": [],
    "v": [], "u": [], "t": [], "s": [], "r": [], "q": [], "p": [], "o": [],
    "n": [], "m": [], "l": [], "k": [], "j": [], "i": [], "h": [], "g": [],
    "f": [], "e": [], "d": [], "c": [], "b": [], "a": [], "`": [], "_": [],
    "^": [], "]": [], "\": [], "[": [], "Z": [], "Y": [], "X": [], "W": [],
    "V": [], "U": [], "T": [], "S": [], "R": [], "Q": [], "P": [], "O": [],
    "N": [], "M": [], "L": [], "K": [], "J": [], "I": [], "H": [], "G": [],
    "F": [], "E": [], "D": [], "C": [], "B": [], "A": [], "@": [], "?": [],
    ">": [], "=": [], "<": [], ";": [], ":": [], "9": [], "8": [], "7": [],
    "6": [], "5": [], "4": [], "3": [], "2": [], "1": [], "0": [], "/": [],
    ".": [], "-": [], ",": [], "+": [], "*": [], ")": [], "(": [], "'": [],
    "&": [], "%": [], "$": [], "#": [], "\"": [], "!": [], " ": [],
};