如何根据字母制作金字塔?
How can I make a pyramid based on alphabet?
那么我怎样才能制作多个字母呢?我正在使用带有字符串的数组,我想将它们乘以它们的索引。
A
BB
CCC
DDDD
EEEEE
等等
<script>
window.onload = start;
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var numbers = [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];
function start() {
document.getElementById("randomize").onclick = execute;
}
function execute() {
for (var i = 0; i < letters.length; i++) {
for (var j = 0; j <= numbers.length; j++) {
var product = numbers.length * letters[i];
document.getElementById("output").innerHTML += "<li>" + letters[i] + "</li>";
}
}
}
</script>
for(var i = 0; i < 26; i++){
console.log(String.fromCharCode(65 + i).repeat(i + 1));
}
给你
A
BB
CCC
...
一个更短的:
var i = 0;
while(i++ < 26) console.log(String.fromCharCode(64 + i).repeat(i));
您几乎完美地完成了所有事情,除了您需要获取 numbers[i]
值而不是长度。
window.onload = start;
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var numbers = [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];
function start() {
document.getElementById("randomize").onclick = execute;
}
function execute() {
for (var i = 0; i < letters.length; i++) {
var product = "";
for (var j = 0; j < numbers[i]; j++)
product += letters[i];
document.getElementById("output").innerHTML += "<li>" + product + "</li>";
}
}
li {font-family: 'Consolas', monospace;}
<button id="randomize">Randomize</button>
<div id="output"></div>
在一条线上(有点):
document.getElementById("output").innerHTML = "<li>" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").map(
x => "".padStart(x.charCodeAt(0) - "A".charCodeAt(0) + 1, x)
).join("</li>\n<li>") + "</li>"
其中:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")
从字符串创建数组
x => "".padStart(x.charCodeAt(0) - "A".charCodeAt(0) + 1, x)
为一个字符创建一个字符串 x
- padStart 创建一个具有所需长度的字符串
- 长度是根据他在字母表中的位置
x.charCodeAt(0) - "A".charCodeAt(0) + 1
参见 String.charCodeAt
- 外部联接使用计算出的字符串创建一个列表
那么我怎样才能制作多个字母呢?我正在使用带有字符串的数组,我想将它们乘以它们的索引。
A
BB
CCC
DDDD
EEEEE
等等
<script>
window.onload = start;
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var numbers = [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];
function start() {
document.getElementById("randomize").onclick = execute;
}
function execute() {
for (var i = 0; i < letters.length; i++) {
for (var j = 0; j <= numbers.length; j++) {
var product = numbers.length * letters[i];
document.getElementById("output").innerHTML += "<li>" + letters[i] + "</li>";
}
}
}
</script>
for(var i = 0; i < 26; i++){
console.log(String.fromCharCode(65 + i).repeat(i + 1));
}
给你
A
BB
CCC
...
一个更短的:
var i = 0;
while(i++ < 26) console.log(String.fromCharCode(64 + i).repeat(i));
您几乎完美地完成了所有事情,除了您需要获取 numbers[i]
值而不是长度。
window.onload = start;
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var numbers = [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];
function start() {
document.getElementById("randomize").onclick = execute;
}
function execute() {
for (var i = 0; i < letters.length; i++) {
var product = "";
for (var j = 0; j < numbers[i]; j++)
product += letters[i];
document.getElementById("output").innerHTML += "<li>" + product + "</li>";
}
}
li {font-family: 'Consolas', monospace;}
<button id="randomize">Randomize</button>
<div id="output"></div>
在一条线上(有点):
document.getElementById("output").innerHTML = "<li>" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").map(
x => "".padStart(x.charCodeAt(0) - "A".charCodeAt(0) + 1, x)
).join("</li>\n<li>") + "</li>"
其中:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")
从字符串创建数组x => "".padStart(x.charCodeAt(0) - "A".charCodeAt(0) + 1, x)
为一个字符创建一个字符串x
- padStart 创建一个具有所需长度的字符串
- 长度是根据他在字母表中的位置
x.charCodeAt(0) - "A".charCodeAt(0) + 1
参见 String.charCodeAt - 外部联接使用计算出的字符串创建一个列表