(), Miky D, , . , ; .
var guesses = [["2","3","8","12","23", "37", "41", "45", "48"],
["2","14","3","12","24", "37", "41", "46", "48"]];
var draws = [ {2:1, 5:1, 11:1, 16:1, 23:1, 45:1, 46:1},
{1:1, 23:1, 11:1, 14:1, 23:1, 42:1, 46:1}];
function checkArray(guesses, draw) {
for (var i = 0; i< guesses.length; ++i) {
if (draw[guesses[i]]) {
guesses[i] = 'g' + guesses[i];
}
}
}
checkArray(guesses[0], draws[1]);
, , . , "a" "b" . , .
- ( "g" ), . <font> , <span> , .
function checkArray(guesses, draw) {
var results = {}
for (var i = 0; i< guesses.length; ++i) {
if (draw.picks[guesses[i]]) {
results[guesses[i]] = 'win';
} else {
results[guesses[i]] = 'loss';
}
}
return results;
}
...
document.write('<span class="name">John</span>');
var results = checkArray(guesses[0], draws[1]);
for (var p in results) {
document.write('<span class="'+results[i]+'">'+p+'</span>');
}
document.write , , document.createElement Node.appendChild. , , innerHTML, . , .
"lotto.js" , -.
function Result(guesses) {
for (var i = 0; i< guesses.length; ++i) {
this[guesses[i]] = '';
}
}
function checkDraw(guesses, draw, results) {
for (var i = 0; i< guesses.length; ++i) {
if (draw.picks[guesses[i]]) {
results[guesses[i]] = 'picked';
}
}
return results;
}
function appendTo(elt, parent) {
if (parent) {
document.getElementById(parent).appendChild(elt);
} else {
document.body.appendChild(elt);
}
}
function printResults(name, results, parent) {
var resultElt = document.createElement('div');
resultElt.appendChild(document.createElement('span'));
resultElt.firstChild.appendChild(document.createTextNode(name));
resultElt.firstChild.className='name';
var picks = document.createElement('ol');
picks.className='picks';
for (var p in results) {
picks.appendChild(document.createElement('li'));
picks.lastChild.appendChild(document.createTextNode(p));
picks.lastChild.className = results[p];
}
resultElt.appendChild(picks);
appendTo(resultElt, parent);
}
function printResultsFor(name, draws, parent) {
var player = players[name];
var results = new Result(player);
for (var i=0; i<draws.length; ++i) {
checkDraw(player, draws[i], results);
}
printResults(name, results, parent);
}
function printDraw(which, draw, parent) {
var drawElt = document.createElement('div');
drawElt.className='draw';
drawElt.appendChild(document.createElement('h3'));
drawElt.lastChild.appendChild(document.createTextNode('Draw '+which));
drawElt.lastChild.className='drawNum';
drawElt.appendChild(document.createElement('div'));
drawElt.lastChild.className='date';
drawElt.lastChild.appendChild(document.createTextNode(draw.when));
var picks = document.createElement('ol');
picks.className='picks';
for (var p in draw.picks) {
picks.appendChild(document.createElement('li'));
picks.lastChild.appendChild(document.createTextNode(p));
}
drawElt.appendChild(picks);
appendTo(drawElt, parent);
}
HTML-:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: white;
background-color: #333;
}
.picks, .picks * {
display: inline;
margin: 0;
padding: 0;
list-style-type: none;
}
.picks * {
margin: auto 0.25em;
}
#Results .picks * { color: red; }
.name, .picks .name {
color: white;
font-weight: bold;
margin-right: 0.5em;
}
#Results .picked { color: lime; }
.drawNum, #Draws H3 {
margin-bottom: 0;
}
</style>
<script type="text/javascript" src="lotto.js"></script>
</head>
<body>
<div id="Results"></div>
<div id="Draws"></div>
<script type="text/javascript">
var players = {John: [2, 3, 8, 12, 23, 37, 41, 45, 48],
Michael: [2, 14, 3, 12, 24, 37, 41, 46, 48]};
var draws = [ {when: 'Sat 08-08-2009',
picks:{2:1, 5:1, 11:1, 16:1, 23:1, 45:1, 46:1}},
{when: 'Sat 15-08-2009',
picks:{1:1, 23:1, 11:1, 14:1, 23:1, 42:1, 46:1}}];
for (name in players) {
printResultsFor(name, draws, 'Results');
}
for (var i=0; i<draws.length; ++i) {
printDraw(i+1, draws[i]);
}
</script>
</body>
</html>
CSS, , . , , , .
: , . . , , , , JS, CSS . , .