2017年4月13日木曜日

開発環境

Head First JavaScript Programming (Eric T. Freeman (著)、Elisabeth Robson (著)、O'Reilly Media)の Chapter 4.(Arrays - Putting Some Order in Your Data)、How to iterate over an array の SHARPEN YOUR PENCIL(No. 2733) を取り組んでみる。

SHARPEN YOUR PENCIL(No. 2733)

コード(Emacs)

HTML5

<button id="run0">run</button><button id="clear0">clear</button>
<pre id="output0"></pre>

<script src="sample6.js"></script>

JavaScript

let btn0 = document.querySelector('#run0'),
    btn1 = document.querySelector('#clear0'),
    pre0 = document.querySelector('#output0');

let getBestResults1 = (scores, highScore) => {
    let bestSolutions = [];

    for (let i = 0; i < scores.length; i += 1) {
        if (scores[i] === highScore) {
            bestSolutions.push(i);
        }
    }
    return bestSolutions;
};
let getBestResults2 = (scores, highScore) => {
    let bestSolutions = [];
    scores.forEach((score, i) => {
        if (score === highScore) {
            bestSolutions.push(i);
        }
    });
    return bestSolutions;
};
let output = () => {
    let scores = [];

    for (let i = 0; i < 36; i += 1) {
        scores.push(Math.floor(Math.random() * 10));
    }

    let highScore = -1;

    let output;
    scores.forEach((score, i) => {
        output = `Bubble solution #${i} scores: ${scores[i]}\n`;
        pre0.textContent += output;
        if (score > highScore) {
            highScore = score;
        }
    });
    
    pre0.textContent += `Bubbles tests: ${scores.length}\n`;
    pre0.textContent += `best solutions 1: ${getBestResults1(scores, highScore)}\n`;
    pre0.textContent += `best solutions 2: ${getBestResults2(scores, highScore)}\n`;
};

btn0.onclick = output;

btn1.onclick = () => {
    pre0.textContent = '';
};

output();
Bubble solution #0 scores: 7
Bubble solution #1 scores: 7
Bubble solution #2 scores: 0
Bubble solution #3 scores: 9
Bubble solution #4 scores: 4
Bubble solution #5 scores: 3
Bubble solution #6 scores: 8
Bubble solution #7 scores: 7
Bubble solution #8 scores: 0
Bubble solution #9 scores: 2
Bubble solution #10 scores: 4
Bubble solution #11 scores: 9
Bubble solution #12 scores: 5
Bubble solution #13 scores: 6
Bubble solution #14 scores: 5
Bubble solution #15 scores: 1
Bubble solution #16 scores: 7
Bubble solution #17 scores: 0
Bubble solution #18 scores: 7
Bubble solution #19 scores: 8
Bubble solution #20 scores: 8
Bubble solution #21 scores: 7
Bubble solution #22 scores: 6
Bubble solution #23 scores: 2
Bubble solution #24 scores: 0
Bubble solution #25 scores: 4
Bubble solution #26 scores: 2
Bubble solution #27 scores: 0
Bubble solution #28 scores: 7
Bubble solution #29 scores: 4
Bubble solution #30 scores: 1
Bubble solution #31 scores: 0
Bubble solution #32 scores: 2
Bubble solution #33 scores: 9
Bubble solution #34 scores: 9
Bubble solution #35 scores: 2
Bubbles tests: 36
best solutions 1: 3,11,33,34
best solutions 2: 3,11,33,34

0 コメント:

コメントを投稿