Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163

    Array e ciclo for (colori)

    ciao a tutti ... ho un problema a capire il funzionamento dell'array e del ciclo for ... ho questo script che non fa altro che prendere da un'array un colore a caso:
    codice:
    <script class="code" type="text/javascript">
    function get_random_color() {
    	var letters = '0123456789ABCDEF'.split('');
    	var color = '#';
    	for (var i = 0; i < 6; i++ ) {
    		color += letters[Math.round(Math.random() * 15)];
    	}
    	return color;
    }
    var colorArray = new Array();
    for (var i = 0; i < 10; i++ ) {
    	colorArray[i] = get_random_color();
    }
    Lo dovrei modificare. Di per sè prende lettere e numeri random; io avrei voluto fare la stessa cosa ma facendo estrapolare casualmente uno dei colori presenti nell'array che ho provato a definire in questo modo:
    codice:
    <script class="code" type="text/javascript">
    function get_random_color() {
    	colorArray[0] = '#20b2aa';
    	colorArray[1] = '#ff1493';
    	colorArray[2] = '#b22222';
    	colorArray[3] = '#ff4500';
    	colorArray[4] = '#4169e1';
    	colorArray[5] = '#00bfff';
    	for (var i = 0; i < 6; i++ ) {
    	color= colorArray[Math.round(Math.random())];
    	}
    	return color;
    }
    var colorArray = new Array();
    for (var i = 0; i < 10; i++ ) {
    	colorArray[i] = get_random_color();
    }

    Il problema è che prende solo i primi 2 colori ... perchè?? in cosa sbaglio???

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Il primo problema è che non ti è molto chiaro quale linguaggio stai utilizzando. lol

  3. #3
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    questo è un java script

  4. #4

    Moderazione

    Qui si parla di Java, non di JavaScript, che ha una sezione apposita; sposto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non stai moltiplicando il Math.random()
    per questo escono solo i primi 2 colori, restituisce solo 0 o 1

  6. #6
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    e per cosa lo dovrei moltiplicare??? ho provato a lasciare il * 15 ma nn cambia nulla -__-''

  7. #7
    Ragiona un momento... Math.Random restituisce un numero compreso tra 0 e 1, mentre tu vuoi ottenere un indice per un array di 6 elementi... per cosa lo dovrai moltiplicare?
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    Scusa!! Ci sono arrivata ragionando, ma siccome non sò per quale arcano motivo non mi faungeva, sono entrata nel panico! Ad ogni modo ci sono riuscita:
    codice:
    function get_random_color(){
    for (var i = 0; i < 25; i++ ) {
    	color= colorArray[Math.round(Math.random()*25)];
    	}
    	return color;
    }
    var colorArray = new Array ('#FF4040', '#7F70D8','#00C90D', '#009e8e','#4188D2','#AD66D5','#E667AF', '#E667AF','#FFB840','#FFF273','#FF7373','#5E4BD8','#7EEF3C','#689CD2','#9F3ED5','#E6399B','#FF8540','#FFEE40','#FF8E00','#9CEF6C','#FF4070','#8242FF','#FFA400','#FF8E00','#FFA400','#0B5FA5','#8643D6','#620012','#FF0041','#9F9FFF');
    for (var i = 0; i < 25; i++ ) {
    colorArray[i]= get_random_color();
    }
    Ma mi sono accorta di una pecca!
    Andando a colorare un grafico di un sondaggio, può succedere che prenda gli stessi colori -__-''

    Ad esempio, prendendo in considerazione un sondaggio tipo:
    -qual'è il tuo cibo preferito?
    puo' succedere che il grafico a torta o a blocchi sia composto da differenti opzioni colorate dello stesso colore -__-'' .. idee?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.