前兩天就這樣咻的讀完了兩個章節XDD
後面的章節顯然越來越難,應該得拆成好幾天寫惹
今天來寫 Chapter 2 的練習題,共有3題
#
##
###
####
for loop:
function printTriangle(layer) {
let currentLayer = "";
for (let i = 0; i < layer; i++) {
console.log((currentLayer += "#"));
}
}
printTriangle(4);
while loop:
function printTriangleWithWhile(layer) {
let currentLayer = "";
while (currentLayer.length < layer) {
console.log((currentLayer += "#"));
}
}
printTriangleWithWhile(4);
另外如果不限定使用迴圈(loop)的話,也可以用遞迴(recursive)寫
recursvie:
// give the "#" as init value of layerContent
function printTriangleWithRecursive(layer , layerContent="#"){
console.log(layerContent);
if(layer <=1){
return;
}
printTriangleWithRecursive(layer-1 ,layerContent += "#" )
}
printTriangleWithRecursive(5);
ternary operator:
function fizzBuzz() {
for (let i = 1; i <= 100; i++) {
let result = null;
i % 3 === 0 && i % 5 === 0 && i
? (result = "fizzBuzz")
: i % 3 === 0 && i
? (result = "fizz")
: i % 5 === 0 && i
? (result = "buzz")
: (result = i);
console.log(result);
}
}
fizzBuzz();
if else:
function fizzBuzzIfElse() {
for (let i = 1; i < 100; i++) {
if (i % 3 === 0 && i % 5 === 0) {
console.log("FizzBuzz");
} else if (i % 3 === 0) {
console.log("Fizz");
} else if (i % 5 === 0) {
console.log("Buzz");
} else {
console.log(i);
}
}
}
# # # #
# # # #
# # # #
# # # #
function drawGrid(value) {
// 奇數行 奇數格space 偶數#
// 偶數行 奇數格# 偶數spaces
for (let i = 0; i < value; i++) {
drawLine(i);
}
function drawLine(numberOfLine) {
let gridLine = "";
for (let i = 0; i < value; i++) {
if (numberOfLine % 2 === 0) {
i % 2 === 0 ? (gridLine += " ") : (gridLine += "#");
} else {
i % 2 === 0 ? (gridLine += "#") : (gridLine += " ");
}
}
console.log(gridLine);
}
}
drawGrid(8);
那麼,明天就要進入 Chapter 3 函式囉~