我正在尝试创建一个多维数组来保存 6 个 JSON 响应。我一直在寻求其他人的帮助:multidimensional array in angular
但是当我测试多维数组的控制台日志时,我得到输出“Stat array: undefined”,仅调用整个数组的这个索引返回 [object Object]。
$scope.pokeArray = new Array(11);
$http.get("http://pokeapi.co/api/v2/pokemon/"+searchedName +".json")
.success(function (response)
{
//Get first form FORMS array, assign name
$scope.pokeArray[0] = response.forms[0].name;
//13 ID
$scope.pokeArray[1] = response.id;
//10 Height
$scope.pokeArray[2] = response.height;
//7 Sprites
$scope.pokeArray[3] = response.sprites.front_default;
$scope.pokeArray[4] = response.sprites.front_shiny;
//3 Stats 5-11
//Speed
$scope.pokeArray[5] = response.stats[1].base_stat;
//Index 6 = Array of 6
$scope.pokeArray[6] = [
{
speed : response.stats[0].base_stat,
spDefense: response.stats[1].base_stat,
spAttack : response.stats[2].base_stat,
defense : response.stats[3].base_stat,
attack : response.stats[4].base_stat,
hp : response.stats[5].base_stat
}];
console.log("Name: " + response.forms[0].name);
console.log("Height: "+ response.height);
console.log("ID: " + response.id);
console.log("Array: " + $scope.pokeArray);
console.log("speed: " + response.stats[1].base_stat);
console.log("Stat array: " + $scope.pokeArray[6].speed);
}
);
}
如您所见,我的前 5 个数组都包含直接响应,这工作正常,我已经用我的控制台日志对其进行了测试,并且我已经在我的 html View 中使用了这些信息。
目前,最后一个控制台日志返回“统计数组:未定义”。也许,我应该以不同的方式在多维数组中做出响应,但我不确定,我想也许如果我尝试使用 [6][0] 来获得可行的速度?但这会导致错误。
如果有人能告诉我是我的数组还是 JSON 处理导致了问题,那将真正帮助我解决问题。谢谢。
最佳答案
你正在创建一个数组而不是创建一个对象,这样做:
$scope.pokeArray[6] = {
speed : response.stats[0].base_stat,
spDefense: response.stats[1].base_stat,
spAttack : response.stats[2].base_stat,
defense : response.stats[3].base_stat,
attack : response.stats[4].base_stat,
hp : response.stats[5].base_stat
};
关于javascript - 带有 JSON 数据的 AngularJS 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960482/