如何将变量(类型字符串)作为索引传递到字典中

时间:2017-04-06 13:07:16

标签: javascript encryption

我正在开发一个加密器,并希望将字符串的每个字母都更改为数字。

在我的for循环中,我需要inputArray[i]等于pairs.inputArray[i]

这不起作用,因为它填写(例如)pairs.'w'但必须pairs.w才能工作。



var pairs = {
  'a': 1,
  'b': 2,
  'c': 3,
  'd': 4,
  'e': 5,
  'f': 6,
  'g': 7,
  'h': 8,
  'i': 9,
  'j': 10,
  'k': 11,
  'l': 12,
  'm': 13,
  'n': 14,
  'o': 15,
  'p': 16,
  'q': 17,
  'r': 18,
  's': 19,
  't': 20,
  'u': 21,
  'v': 22,
  'w': 23,
  'x': 24,
  'y': 25,
  'z': 26,
  ' ': 27
}

// var nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
// var alphabet = 'abcdefghijklmnopqrstuvwxyz';
// var alphabetArray = alphabet.split('');

var input = 'raising';
var inputArray = input.split('');

for (var i = 0; i < inputArray.length; i++) {
  //var index = inputArray[i];
  inputArray[i] = pairs.inputArray[i];
}

console.log(inputArray);
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

您可以使用括号表示法而不是像这样的点符号

pairs[inputArray[i]]

&#13;
&#13;
var pairs = {
  'a': 1,
  'b': 2,
  'c': 3,
  'd': 4,
  'e': 5,
  'f': 6,
  'g': 7,
  'h': 8,
  'i': 9,
  'j': 10,
  'k': 11,
  'l': 12,
  'm': 13,
  'n': 14,
  'o': 15,
  'p': 16,
  'q': 17,
  'r': 18,
  's': 19,
  't': 20,
  'u': 21,
  'v': 22,
  'w': 23,
  'x': 24,
  'y': 25,
  'z': 26,
  ' ': 27
}
var inputArray = Array.from('raising');

for (var i = 0; i < inputArray.length; i++) {
  inputArray[i] = pairs[inputArray[i]];
}

console.log(inputArray.join(","));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用括号表示法代替点表示法来访问该值,类似于inputArray[i] = pairs[inputArray[i]];

有关详细信息,请参阅Property Accessors上的文档。

&#13;
&#13;
var pairs = {
  'a': 1,
  'b': 2,
  'c': 3,
  'd': 4,
  'e': 5,
  'f': 6,
  'g': 7,
  'h': 8,
  'i': 9,
  'j': 10,
  'k': 11,
  'l': 12,
  'm': 13,
  'n': 14,
  'o': 15,
  'p': 16,
  'q': 17,
  'r': 18,
  's': 19,
  't': 20,
  'u': 21,
  'v': 22,
  'w': 23,
  'x': 24,
  'y': 25,
  'z': 26,
  ' ': 27
}

// var nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
// var alphabet = 'abcdefghijklmnopqrstuvwxyz';
// var alphabetArray = alphabet.split('');

var input = 'raising';
var inputArray = input.split('');

for (var i = 0; i < inputArray.length; i++) {
  //var index = inputArray[i];
  inputArray[i] = pairs[inputArray[i]];
}

console.log(inputArray);
&#13;
&#13;
&#13;