Avatar billede koch Nybegynder
01. oktober 2004 - 20:13 Der er 7 kommentarer og
1 løsning

antal i array

Jeg kan få antallet af elementer i mit array test ved 'var antal=test.length

Det er et multidimensionelt array. Nogle af elementerne i arrayet skal trækkes fra, alle dem hvor test[i][3]=solgt

Dvs.

var test=new Array();
test[0]=new Array();
test[0][0]="1";
test[0][1]="2";
test[0][2]="solgt";

test[1]=new Array();
test[1][0]="1";
test[1][1]="2";
test[1][2]="3";

Det antal jeg vil have fat i er alle de elementer som ikke er solgt. Altså test.length - SolgteElementer!
Altså noget med:

var solgte=0(solgte sættes lig 0)
If test[i][2]==solgt(der skal på en eller anden måde testes om [i][2] har værdien solgt)
solgte+1(hvis [i][2] skal der lægges 1 til solgte)

elementer=test.length-solgte
Avatar billede grunken Nybegynder
01. oktober 2004 - 20:27 #1
<script type="text/javascript">

cnt=0;

var test=[];
test[0]=[];
test[0][0]="1";
test[0][1]="2";
test[0][2]="solgt";

test[1]=[];
test[1][0]="1";
test[1][1]="2";
test[1][2]="3";

for(i in test){
for(j in test[i]){
  cnt=(test[i][j]=="solgt")?cnt:cnt+1
}
}

alert(cnt);
</script>
Avatar billede grunken Nybegynder
01. oktober 2004 - 20:29 #2
aha - misforstod - tror jeg :o)
Avatar billede grunken Nybegynder
01. oktober 2004 - 20:36 #3
nok dette resultat du vil have

<script type="text/javascript">

cnt=0;

var test=[];
test[0]=[];
test[0][0]="1";
test[0][1]="2";
test[0][2]="solgt";

test[1]=[];
test[1][0]="1";
test[1][1]="2";
test[1][2]="3";

for(i in test){
  cnt=(test[i][2]=="solgt")?cnt:cnt+1;
}

alert(cnt);
</script>
Avatar billede grunken Nybegynder
01. oktober 2004 - 20:38 #4
og sidste mulighed hvis du vil have solgte i en varabel ;o)

for(i in test){
  cnt=(test[i][2]=="solgt")?cnt+1:cnt;
}

alert(test.length-cnt);
Avatar billede koch Nybegynder
01. oktober 2004 - 21:34 #5
for(i in test){
  solgte=(biler[i][2]=="Solgt")?solgte:solgte+1;
}

giver det jeg skal bruge! Jeg beder den bare skrive værdien af solgte...
Men vil du forklare hvad der sker? Jeg er ikke med på ? og :
Avatar billede grunken Nybegynder
01. oktober 2004 - 21:58 #6
faktisk burde den se omvendt ud, hvis du vil have et antal på solgte

for(i in test){
  solgte=(biler[i][2]=="Solgt")?solgte+1:solgte;
}

solgte=(biler[i][2]=="Solgt")?solgte+1:solgte;

er en shorthand if ;o)

den linie kunne omskrives til

if(biler[i][2]=="Solgt")
solgte=solgte+1;
else
solgte=solgte;

Det vil på kort dansk sige at hvis sætningen mellem paranteserne er true, så afvikles det efter spørgsmålstegnet, hvis ikke det efter kolonet;

-og i din version er der jo faktisk ingen grund til alt den dobbeltkonfekt, så får nemheden og forståelsens skyld skriver vi lidt om

for(i in test){
  if(biler[i][2]=="Solgt")solgte++;
}
Avatar billede koch Nybegynder
02. oktober 2004 - 08:25 #7
Det er meget flot. Tak for hjælpen! Du smider bare et svar!
Jeg benytter den sidste. Tak for forklaringen også!
Avatar billede grunken Nybegynder
02. oktober 2004 - 23:22 #8
velbekomme ;o)

-du får et svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester