pope wrote:
> det jeg så gerne vil have gjort med det her array er at den skal
> gå ind og finde ud af hvor mange gang der står BMW, Saab og
> Volvo... og give et resultat der ser sådan her ud:
>
> BMW = 6
> Saab = 1
> Volvo = 3
En mulighed:
function findInstances(arr) {
var tempObj = new Object();
for (var i = 0; i < arr.length; i++) {
if (!tempObj[arr[i]]) {
tempObj[arr[i]] = 0;
}
tempObj[arr[i]]++;
}
return tempObj;
}
function printObject(obj) {
for (var i in obj) {
document.write(i + " = " + obj[i]+"<br>");
}
}
printObject(findInstances(mycars));
findInstances() finder ud af hvor mange gange en værdi forekommer i det
givne array og printObject() udskriver et objekt (kan skam også bruges
på alle mulige andre objekter).
Da findInstances kun gennemløber array'et fra den ene ende til det andet
tager den ikke højde for i hvilken rækkefølge den skal placere de
forskellige egenskaber (properties) i objektet - derfor bliver outputtet
i sidste ende anderledes end du foreslog. Dette kan dog ordnes ved at
sortere array'et inden du kalder funktionen findInstances:
mycars.sort();
printObject(findInstances(mycars));
--
http://www.skovenborg.frac.dk