Voetsjoeba
%Europe/Berlin %716 %2005, 18:11
Kleine functie die nagaat of een waarde bestaat in een array. Er kan ook in plaats van een enkele waarde een array van waarden meegegeven worden, en hoe er moet gecontroleerd worden: ofwel moeten alle waarden van de array aanwezig zijn (mode = "&&") ofwel moet er minimaal 1 van de waarden aanwezig zijn (mode = "||"). Dacht dat dit misschien wel van pas zou kunnen komen ;)
Dit is de eerste versie die ik in een kwartiertje heb gecodeerd, waarschijnlijk zitten er nog een paar bugs in die ik nog niet gevonden heb. Als je er een vind, laat maar weten.
Array.prototype.valueExists = function(val, mode) {
if (val instanceof Array) {
if (mode != "&&" && mode != "||") mode = "&&";
if (mode == "&&") {
for (var all in val) {
if (!this.valueExists(val[all])) {
return false;
break;
}
}
return true;
} else if (mode == "||") {
for (var all in val) {
if (this.valueExists(val[all])) {
return true;
break;
}
}
return false;
}
} else {
for (var all in this) {
if (this[all] == val) {
return true;
break;
}
}
return false;
}
};
test = new Array("Array", ".", "prototype", ".", "valueExists");
testByValue = "Array";
testByMultiple = [".", "proto"];
trace(test.valueExists(testByValue)); // true
trace(test.valueExists(testByMultiple, "&&")); // false
trace(test.valueExists(testByMultiple, "||")); // true
Dit is de eerste versie die ik in een kwartiertje heb gecodeerd, waarschijnlijk zitten er nog een paar bugs in die ik nog niet gevonden heb. Als je er een vind, laat maar weten.
Array.prototype.valueExists = function(val, mode) {
if (val instanceof Array) {
if (mode != "&&" && mode != "||") mode = "&&";
if (mode == "&&") {
for (var all in val) {
if (!this.valueExists(val[all])) {
return false;
break;
}
}
return true;
} else if (mode == "||") {
for (var all in val) {
if (this.valueExists(val[all])) {
return true;
break;
}
}
return false;
}
} else {
for (var all in this) {
if (this[all] == val) {
return true;
break;
}
}
return false;
}
};
test = new Array("Array", ".", "prototype", ".", "valueExists");
testByValue = "Array";
testByMultiple = [".", "proto"];
trace(test.valueExists(testByValue)); // true
trace(test.valueExists(testByMultiple, "&&")); // false
trace(test.valueExists(testByMultiple, "||")); // true