<!doctype html>
<html>
<head>
<link href='//www.rjmprogramming.com.au/PHP/emboss_h1.css' rel='stylesheet' type='text/css'>
<script type='text/javascript'>
var myarray = new Array();
var sparearray = new Array();
var sparestring = '';
var adjective = 'First ';
var num = 1;

function onerand(inv) {
sparestring=Math.floor(Math.random() * (myarray.length - 1)) + inv;
return sparestring;
}

function tworand(inv) {
var ij=Math.floor(Math.random() * (myarray.length - inv - 1)) + inv;
return ij;
}

function showmemberdatawithfollowing(following, val, ind, obj) {
alert(adjective.replace('First','Second Last') + ' (ie. ' + eval(obj.length - num) + ') value of myarray is at index ' + ind + ' and is = ' + val + " ... and the " + adjective.replace('Previous ','later').replace('First ','last') + " value was " + following);
adjective = 'Previous ';
num++;
if (ind == 0) {
num = 1;
adjective = 'First ';
}
return val;
}

function showmemberdatawithprevious(prev, val, ind, obj) {
alert(adjective.replace('First','Second') + ' (ie. ' + eval(1 + num) + ') value of myarray is at index ' + ind + ' and is = ' + val + " ... and the " + adjective.replace('Next ','previous').replace('First ','first') + " value was " + prev);
adjective = 'Next ';
num++;
if (eval(num) >= obj.length) {
num = 1;
adjective = 'First ';
}
return val;
}

function showalphasort(val, ind, obj) {
alert(adjective + ' (ie. ' + num + ') value of myarray is at index ' + ind + ' and is = ' + val + " being placed into sparearray");
adjective = 'Next ';
num++;
if (eval(num - 1) >= obj.length) {
num = 1;
adjective = 'First ';
}
return val;
}

function showmemberdata(val, ind, obj) {
alert(adjective + ' (ie. ' + num + ') value of myarray is at index ' + ind + ' and is = ' + val);
adjective = 'Next ';
num++;
if (eval(num - 1) >= obj.length) {
num = 1;
adjective = 'First ';
}
}

function isallprime(val, ind, obj) {
if (eval(val) < 2) return false;
if (val.indexOf(".") != -1) return false;
for (var ii=eval(val - 1); ii>=2; ii--) {
if ((eval(val) % ii) == 0) return false;
}
return true;
}

function isalleven(val, ind, obj) {
if ((eval(val) % 2) == 0) return true;
return false;
}

function numericalsort(x, y) {
if (eval(x) < eval(y)) return -1;
if (eval(x) == eval(y)) return 0;
return 1;
}

function perform(selo, selv, inpo, inpv) {
if (selv == ' ') {
} else if (selv != '') {
var commands=selv.split(";");
for (var i=0; i<commands.length; i++) {
inpo.value = myarray;
if (commands[i] != '') eval(commands[i] + ';');
}
inpo.value = myarray;
} else {
myarray = new Array();
sparearray = new Array();
sparestring = '';
inpo.value = myarray;
}
}
</script>
</head>
<body style='background-color: olive;'>
<h1 align='center'>Javascript Array Object - RJM Programming - June, 2015</h1>
<div align='center'>
<select size=31 style='background-color: yellow;' onchange=" this.size=1; this.style.height='35px'; perform(this, this.value, document.getElementById('v'), document.getElementById('v').value) ">
<option value="">var myarray = new Array(); var sparearray = new Array(); var sparestring = ''; // and then?</option>
<option style="background-color: lightblue;" value=" "></option>
<option value="myarray.push('1');">myarray.push('1');</option>
<option value="myarray.push('2');">myarray.push('2');</option>
<option value="myarray.push('3','5','13','17','2','7','11');">myarray.push('3','5','13','17','2','7','11');</option>
<option value="myarray.push('7','9','8');">myarray.push('7','9','8');</option>
<option value="myarray=myarray.concat('17','19','18');">myarray=myarray.concat('17','19','18');</option>
<option value="sparestring=myarray.join(','); alert('sparestring=' + sparestring);">sparestring=myarray.join(','); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.shift(); alert('sparestring=' + sparestring);">sparestring=myarray.shift(); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.pop(); alert('sparestring=' + sparestring);">sparestring=myarray.pop(); alert('sparestring=' + sparestring);</option>
<option value="myarray.unshift('2','1');">myarray.unshift('2','1');</option>
<option value="myarray.reverse();">myarray.reverse();</option>
<option value="myarray.sort();">myarray.sort();</option>
<option value="myarray.sort(numericalsort);">myarray.sort(numericalsort);</option>
<option value="myarray.splice(0,1,99);">myarray.splice(0,1,99);</option>
<option value="sparearray=myarray.slice(0,myarray.length); alert('sparearray=' + sparearray);">sparearray=myarray.slice(0,myarray.length); alert('sparearray=' + sparearray);</option>
<option value="sparearray=myarray.slice(onerand(0),tworand(myarray.length)); alert('sparearray=' + sparearray);">sparearray=myarray.slice(onerand(0),tworand(myarray.length)); alert('sparearray=' + sparearray);</option>
<option value="sparestring=myarray.indexOf('1'); alert('sparestring=' + sparestring);">sparestring=myarray.indexOf('1'); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.lastIndexOf('2'); alert('sparestring=' + sparestring);">sparestring=myarray.lastIndexOf('2'); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.every(isalleven); alert('sparestring=' + sparestring);">sparestring=myarray.every(isalleven); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.every(isallprime); alert('sparestring=' + sparestring);">sparestring=myarray.every(isallprime); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.some(isallprime); alert('sparestring=' + sparestring);">sparestring=myarray.some(isallprime); alert('sparestring=' + sparestring);</option>
<option value="myarray.forEach(showmemberdata);">myarray.forEach(showmemberdata);</option>
<option value="sparearray=myarray.map(showalphasort); alert('sparearray=' + sparearray);">sparearray=myarray.map(showalphasort); alert('sparearray=' + sparearray);</option>
<option value="sparearray=myarray.filter(isallprime); alert('sparearray=' + sparearray);">sparearray=myarray.filter(isallprime); alert('sparearray=' + sparearray);</option>
<option value="myarray.reduce(showmemberdatawithprevious);">myarray.reduce(showmemberdatawithprevious);</option>
<option value="myarray.reduceRight(showmemberdatawithfollowing);">myarray.reduceRight(showmemberdatawithfollowing);</option>
<option value="sparestring=myarray.toString(); alert('sparestring=' + sparestring);">sparestring=myarray.toString(); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.toLocaleString(); alert('sparestring=' + sparestring);">sparestring=myarray.toLocaleString(); alert('sparestring=' + sparestring);</option>
<option value="sparestring=myarray.length; alert('sparestring=' + sparestring);">sparestring=myarray.length; alert('sparestring=' + sparestring);</option>
<option style="background-color: lightblue;" value=" "></option>
<option style="background-color: orange;" value="myarray.push('1')">myarray.push('1');</option>
<option style="background-color: orange;" value="myarray.push('2')">myarray.push('2');</option>
<option style="background-color: orange;" value="myarray.push('3','5','13','17','2','7','11')">myarray.push('3','5','13','17','2','7','11');</option>
<option style="background-color: orange;" value="myarray.push('7','9','8')">myarray.push('7','9','8');</option>
<option style="background-color: orange;" value="myarray=myarray.concat('17','19','18')">myarray=myarray.concat('17','19','18');</option>
<option style="background-color: orange;" value="sparestring=myarray.join(','); alert('sparestring=' + sparestring)">sparestring=myarray.join(','); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.shift(); alert('sparestring=' + sparestring)">sparestring=myarray.shift(); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.pop(); alert('sparestring=' + sparestring)">sparestring=myarray.pop(); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="myarray.unshift('2','1')">myarray.unshift('2','1');</option>
<option style="background-color: orange;" value="myarray.reverse()">myarray.reverse();</option>
<option style="background-color: orange;" value="myarray.sort()">myarray.sort();</option>
<option style="background-color: orange;" value="myarray.sort(numericalsort);">myarray.sort(numericalsort);</option>
<option style="background-color: orange;" value="myarray.splice(0,1,99)">myarray.splice(0,1,99);</option>
<option style="background-color: orange;" value="sparearray=myarray.slice(0,myarray.length); alert('sparearray=' + sparearray)">sparearray=myarray.slice(0,myarray.length); alert('sparearray=' + sparearray);</option>
<option style="background-color: orange;" value="sparearray=myarray.slice(onerand(0),tworand(myarray.length)); alert('sparearray=' + sparearray)">sparearray=myarray.slice(onerand(0),tworand(myarray.length)); alert('sparearray=' + sparearray);</option>
<option style="background-color: orange;" value="sparestring=myarray.indexOf('1'); alert('sparestring=' + sparestring)">sparestring=myarray.indexOf('1'); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.lastIndexOf('2'); alert('sparestring=' + sparestring)">sparestring=myarray.lastIndexOf('2'); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.every(isalleven); alert('sparestring=' + sparestring)">sparestring=myarray.every(isalleven); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.every(isallprime); alert('sparestring=' + sparestring)">sparestring=myarray.every(isallprime); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.some(isallprime); alert('sparestring=' + sparestring)">sparestring=myarray.some(isallprime); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="myarray.forEach(showmemberdata)">myarray.forEach(showmemberdata);</option>
<option style="background-color: orange;" value="sparearray=myarray.map(showalphasort); alert('sparearray=' + sparearray)">sparearray=myarray.map(showalphasort); alert('sparearray=' + sparearray);</option>
<option style="background-color: orange;" value="sparearray=myarray.filter(isallprime); alert('sparearray=' + sparearray)">sparearray=myarray.filter(isallprime); alert('sparearray=' + sparearray);</option>
<option style="background-color: orange;" value="myarray.reduce(showmemberdatawithprevious)">myarray.reduce(showmemberdatawithprevious);</option>
<option style="background-color: orange;" value="myarray.reduceRight(showmemberdatawithfollowing)">myarray.reduceRight(showmemberdatawithfollowing);</option>
<option style="background-color: orange;" value="sparestring=myarray.toString(); alert('sparestring=' + sparestring)">sparestring=myarray.toString(); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.toLocaleString(); alert('sparestring=' + sparestring)">sparestring=myarray.toLocaleString(); alert('sparestring=' + sparestring);</option>
<option style="background-color: orange;" value="sparestring=myarray.length; alert('sparestring=' + sparestring)">sparestring=myarray.length; alert('sparestring=' + sparestring);</option>
</select>&nbsp;&nbsp;&nbsp;&nbsp;myarray = <input id='v' type='text' value='' style='height:35px; background-color: pink;width:50%;'></input>
</div>
</body>
</html>