Just nu i M3-nätverket
Gå till innehåll
Jompan

LÖST Sortering av lista

Rekommendera Poster

Är det någon som kan se vad jag gjort för fel i kodningen. 

var inputTag, resultTag;

function init() {
	inputTag = document.getElementById("inputField");
	resultTag = document.getElementById("result");
} 
window.onload = init;

function listMovies() {
	var i;
	var movies = new Array();
	movies[0]="Broarna i Madison County";
	movies[1]="Forrest Gump";
	movies[2]="Sjunde himlen";
	movies[3]="Den bästa av mödrar";
	movies[4]="Tjorven och Mysak";	
	
	resultTag.innerHTML = "<br>Antal filmer = " + movies.length; 
	for (i=0; i<movies.length; i++) {	
	resultTag.innerHTML += "<p>" + movies[i] + "</p>";
	}
	
	resultTag.innerHTML += "<b>Filmer i stigande ordning</b> <br>" + movies.sort().join("<br>");
	resultTag.innerHTML += "<b><br><br>Filmer i fallande ordning</b> <br>" + movies.reverse().join("<br>");
	
} 

function listMoviesUpp() {
	var movies; 
	
		for (i=0; i<movies.length; i++) {	
	resultTag.innerHTML += "<p>" + movies[i] + "</p>";
	}
	resultTag.innerHTML += "<b>Filmer i stigande ordning</b> <br>" + movies.sort().join("<br>");
	resultTag.innerHTML += "<b><br><br>Filmer i fallande ordning</b> <br>" + movies.reverse().join("<br>");
		
} 

<button type="button" onclick="listMovies()">Hela filmlistan</button>
<button type="button" onclick="listMoviesUpp()">Hela filmlistan i stigande ordning</button>
<button type="button" onclick="listMoviesNer()">Hela filmlistan i fallande ordning</button>


<div id="result"></div>

Inget resultat i 'Hela filmlistan i stigande ordning'.

 

Tacksam för tips om hur listMoviesUpp ska kodas..

 

// Jompan

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Arrayen movies "finns" ju bara i funktionen listMovies och därmed kan du inte använda den i funktionen listMoviesUpp.

 

Förslag: 

var resultTag;
var movies = new Array();

function getMovies() {
  resultTag = document.getElementById("result");
  movies[0]="Broarna i Madison County";
  movies[1]="Forrest Gump";
  movies[2]="Sjunde himlen";
  movies[3]="Den bästa av mödrar";
  movies[4]="Tjorven och Mysak";
  resultTag.innerHTML = "<br>Antal filmer = " + movies.length;
}

function listMovies() {
  getMovies();
  resultTag.innerHTML += "<br><b>Filmer i osorterad ordning</b> <br>" + movies.join("<br>");
} 

function listMoviesUpp() {
  getMovies();   
  resultTag.innerHTML += "<br><b>Filmer i stigande ordning</b> <br>" + movies.sort().join("<br>");
}

function listMoviesNer() {
  getMovies();
  resultTag.innerHTML += "<br><b>Filmer i fallande ordning</b> <br>" + movies.reverse().join("<br>");
}
Redigerad av Cluster
kodförslag

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ett annat alternativ är ju att samla allt i en funktion som tar emot en parameter som avgör sorteringen.

 

Javascript:

function listMovies(sort) {
  var sortName, movieList, myResult;
  var movies = new Array();
    movies[0]="Broarna i Madison County";
    movies[1]="Forrest Gump";
    movies[2]="Sjunde himlen";
    movies[3]="Den bästa av mödrar";
    movies[4]="Tjorven och Mysak";

  switch(sort)
  {
  case 'asc':
    sortName = "stigande";
    movieList =  movies.sort().join("<br>");
    break;
  case 'desc':
    sortName = "fallande";
    movieList =  movies.reverse().join("<br>");
    break;
  default:
    sortName = "osorterad";
    movieList =  movies.join("<br>");
  };

  myResult = "<p><strong>Antal filmer = " + movies.length + "</strong></p>";
  myResult += "<strong>Filmer i " + sortName + " ordning</strong><br>";
  myResult += movieList;
  
  document.getElementById("result").innerHTML = myResult;
}

markup:

<button type="button" onclick="listMovies()">Hela filmlistan</button>
<button type="button" onclick="listMovies('asc')">Hela filmlistan i stigande ordning</button>
<button type="button" onclick="listMovies('desc')">Hela filmlistan i fallande ordning</button>
<div id="result"></div>

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...