2

JavaScript 语言的新手,需要帮助创建一个生成以下显示的函数。

abcdefghijklmnopqrstuvwxyz
 bcdefghijklmnopqrstuvwxyz
  cdefghijklmnopqrstuvwxyz
   defghijklmnopqrstuvwxyz

....等等,一直到

                       xyz
                        yz
                         z

我不是要讲义,只是初学者入门的一点启动!链接,提示,提示,任何帮助!谢谢!

4

5 回答 5

3

数组和循环结合起来非常强大。

var alphabet = "abcdefghijklmnopqrstuvwxyz".split('');
console.log(alphabet.join(''));

while (alphabet.​length > 0) {
    alphabet.shift();
    console.log(alphabet.join(''));
}​​​

编辑: 如果你真的需要你的递减字母左填充,你可以使用这个:

var alphabet = "abcdefghijklmnopqrstuvwxyz";
var letters = alphabet.split('');
var addPadding = (function (minLength) {
    return function (shortString) {
        if (shortString.length < minLength) {
            return new Array(
                minLength - shortString.length + 1
            ).join(' ') + shortString;
        }
    };
}(alphabet.length));

console.log(alphabet);
while (letters.length > 0) {
    letters.shift();
    console.log(addPadding(letters.join('')));
}

编辑: 这是一个简单的答案:

function decrementingAlphabet () {
    var alphabet = 'abcdefghijklmnopqrstuvwxyz';

    function iterate(spaces, letters) {
        if (letters.length > 0) {
            console.log(spaces + letters);
            iterate(spaces + ' ', letters.substring(1));
        } else {
            return;
        }
    }

    iterate('', alphabet);
}
于 2012-12-06T03:29:27.227 回答
0
(function() {
  var theENalphabet = [];
  for (var charNow = "a".charCodeAt(0); charNow <= "z".charCodeAt(0); charNow += 1) {
       theENalphabet.push(String.fromCharCode(charNow));
  }
  var isNow = 0;
  function decrAlph(startAt) {
     var alphString = "";
     for (var i = startAt; i < theENalphabet.length; i += 1) {
         alphString += theENalphabet[i];
     }
     console.log(alphString);
     isNow++;
     while (isNow < theENalphabet.length) {
         decrAlph(startAt + 1);
     }
  };
  decrAlph(0);
})();

获取的 charCode 可以抽象为一个函数:

var getCharCode = function(el){
    return String.prototype.charCodeAt.call(el, 0);
};
getCharCode("a"); // returns 97..
于 2015-02-03T09:50:23.117 回答
0

这是一个简单的例子。

var str = '';
for (var s=0; s < 26; ++s) {
    str = '';
    for (var i=0; i < 26 - s; ++i) {
        str += String.fromCharCode(97+s+i);
    }
    document.write(str + "<br/>");
}

​ 见http://jsfiddle.net/G5Gds

于 2012-12-06T03:27:43.013 回答
0

在字符代码中,小字母从 97 开始(97 表示 a)。您需要使用 2 个 for 循环来打印此类系列。

这是您的jsfiddle 演示

var display='';
for(var i=97;i<123;i++){
    var s='';
    for(var j=i;j<123;j++){
        s+= String.fromCharCode( j );       
    }           
    display+=s;
} 
alert(display);
于 2012-12-06T03:27:47.827 回答
0

嗯,也许这会帮助你走上正轨?

var str = '';

// Find out what 'a' is in ASCII
var baseLetterCode = 'a'.charCodeAt(0);

// Loop once for each letter
for (var i = 0; i < 26; ++i) {
    // Append to string
    str += String.fromCharCode(baseLetterCode + i);
}
于 2012-12-06T03:28:29.747 回答