逐行解释JavaScript函数

时间:2009-05-26 11:43:19

标签: javascript

我遇到过以下一段JavaScript,想知道它在做什么:

function flipString(aString) {
 var last = aString.length - 1;
 var result = new Array(aString.length)
 for (var i = last; i >= 0; --i) {
  var c = aString.charAt(i)
  var r = flipTable[c]
  result[last - i] = r != undefined ? r : c
 }
 return result.join('')
}

3 个答案:

答案 0 :(得分:3)

它看起来像某种加密/混淆。不知道filpTable看起来像什么,很难说。

function flipString(aString) {
 var last = aString.length - 1;

 // Create a new array with the length of the string
 var result = new Array(aString.length)

 // Walk through the string backwards
 for (var i = last; i >= 0; --i) {
  // Get the current character
  var c = aString.charAt(i)

  // Find the associated character in the flipTable
  var r = flipTable[c]

  // If the character wasn't in the flip table, use it as-is, else use the one we found
  // Store as (last-i) instead of (i) so it comes out backwards
  result[last - i] = r != undefined ? r : c
 }

 // Return the result as a string instead of an array
 return result.join('')
}

答案 1 :(得分:3)

它遍历从第一个字符到最后一个字符的字符串,同时将在每个索引处找到的字符存储在数组中。对于每个字符,如果数组“flipTable”具有与之关联的条目,则它使用flipTable条目而不是字符。然后将结果数组与''连接以形成一个字符串。

简单来说,它会反转一个字符串,同时将每个作为flipTable键的字符更改为与之关联的条目。为什么你这样做,我不知道没有上下文。

答案 2 :(得分:1)

看起来像一个简单的substitution cipher实现。 flipTable包含替换字母表,函数逐步执行字符串中的每个字符,并将其替换为该字母表中的对应字符。