私はこのコードを持っています。私は配列内で参照する必要がありますyオブジェクトは、forステートメント(増減)内で割り当てられます。最初のconsole.logには配列が更新されているのが見えますが、2番目のものは空です。配列はJavaScriptで更新されていません
function myfunction() {
var y = new Array(2);
$.getJSON('../docs/natures.json', function(data) {
var nature = document.getElementById("nature").value;
for(var i = 0; i< data.natures.length; i++)
{
var x = data.natures[i];
if((nature.localeCompare(x.name)) == 0)
{
y=[x.increase];
console.log(y[0]);
y.push(x.decrease);
console.log(y[1]);
break;
}
}
console.log(y); <!- first ->
});
console.log(y); <!- second ->
}
私のJSONファイルは、このようなものです:
{"natures":[
{
"name":"some name",
"increase": "some increase",
"decrease": "some decrease"
},
{...}
]}
可能な複製に発生する[なぜ私の変数は、私は、関数の内部でそれを変更した後に変更されていないのですか? - 非同期コードリファレンス](https://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron) – Xufox