/ / problema con loop -JS - javascript, loop, dojo, for-loop

problema con loop -JS - javascript, loop, dojo, for-loop

ho molti pezzi di codice come:

<script type="text/javascript">
dojo.query("body").delegate("#input0 > select.estatistica", "onchange", function(evt){
dojo.xhrPost({
url: "drop2.php",
handleAs: "json",
postData: "data=" + $(this).val(),
preventCache: true,
load: function(json) {
$m0 = [];

for (var i = 1; i < 10; i++) {
$m0.push(parseFloat(json[i]["valor" + i]));
}
dojo.addOnLoad(refreshChar0);

}
});
});
</script>


<script type="text/javascript">
dojo.query("body").delegate("#input1 > select.estatistica", "onchange", function(evt){
dojo.xhrPost({
url: "drop2.php",
handleAs: "json",
postData: "data=" + $(this).val(),
preventCache: true,
load: function(json) {
$m1 = [];

for (var i = 1; i < 10; i++) {
$m1.push(parseFloat(json[i]["valor" + i]));
}
dojo.addOnLoad(refreshChart1);
}
});
});
</script>

ho provato questo loop, ma non sono sicuro della sceneggiatura. Probabilmente ho errori di sintassi.

<script type="text/javascript">
for(x=0; x<10; x++) {
dojo.query("body").delegate(""#input"+x+"> select.estatistica"", "onchange", function(evt) {
dojo.xhrPost({
url: "drop2.php",
handleAs: "json",
postData: "data=" + $(this).val(),
preventCache: true,
load: function(json) {
$m+x = [];

for (var i = 1; i < 10; i++) {
$m+x.push(parseFloat(json[i]["valor" + i]));
}
dojo.addOnLoad(refreshChart+x);
}
});
});
}
</script>

Grazie

risposte:

0 per risposta № 1

per creare dinamicamente un nome di variabile devi usare la notazione parentesi

per esempio: this["$m"+x] o window["$m"+x] creerà una variabile chiamata $m1 dove x = 1

provare:

window["foo" + "bar"] = "hello";
alert(foobar);

0 per risposta № 2

A quanto pare $m+x "Immagino che tu stia provando a creare dinamicamente una variabile come $m0 a $m9 basato sull'iterazione da 0 a 10. Non puoi farlo in Javascript per quanto ne so, ti darà un errore. Suggerisco invece di creare una sorta di variabile dinamica perché non riempire i valori all'interno di un array in base agli indici di x.

Ecco qualcosa:

var $m = [];
for(x=0; x<10; x++)
{
// some of your codes here ...

// make $m[x] an array
if (typeof $m[x] == "undefined")
$m[x] = [];

// some of your codes here...

for (var i = 1; i < 10; i++)
{
// of course you need to change this to what you need to push
$m[x].push(i);
}

}

console.log($m[0]); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

Quindi in poche parole $m sarà un array con array. Non so se la mia ipotesi è giusta, ma spero che dia un'idea.