你可以遍历一个字符串数组并将它们的值与对象字典中的键匹配吗?

时间:2014-07-16 04:36:22

标签: javascript arrays string object for-loop

例如,我希望输入的“cab”字符串返回“Clown Ace Boss”。

    var wiseBacronyms = function(initialInput) {
      initialInput = initialInput.toLowerCase();
      var dictionary = {"a":"Ace","b":"Boss","c":"Clown"};
      var letterArray = initialInput.split('');
      var result = [];

      for (var index = 0; index < letterArray.length; index++) {
        result.push(dictionary[index]);
      };
      return result.join('');
    };

2 个答案:

答案 0 :(得分:0)

您不想从字典中提取index,而是letterArray[index]

function wiseBacronyms(initialInput) {
  initialInput = initialInput.toLowerCase();
  var dictionary = {"a":"Ace","b":"Boss","c":"Clown"};
  var letterArray = initialInput.split('');
  var result = [];

  for (var index = 0; index < letterArray.length; index++) {
    result.push(dictionary[letterArray[index]]);
  };
  return result.join(' '); // also I added a space here
}

wiseBacronyms("cab") // "Clown Ace Boss"

答案 1 :(得分:0)

您想要访问letterArray中每个项目的属性,并将其添加到result数组中,最后使用join(' ')创建字符串。像这样:

var wiseBacronyms = function(initialInput) {
    initialInput = initialInput.toLowerCase();
    var dictionary = {"a":"Ace","b":"Boss","c":"Clown"};
    var letterArray = initialInput.split('');
    var result = [];

    letterArray.forEach(function(l) {
        result.push(dictionary[l]);
    });

    return result.join(' ');
};