javascript - 带有 JSON 数据的 AngularJS 多维数组

标签 javascript arrays angularjs json multidimensional-array

我正在尝试创建一个多维数组来保存 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/

相关文章:

javascript - javascript 中的外部脚本用法

javascript - 如果我只在数组中设置一个高索引,它会浪费内存吗?

javascript - 从显示为 :none in JavaScript 的父 div 获取 ID

javascript - 从对象内部的对象中查找未定义或空值

javascript - 如何在 ng-repeat 中使用 ng-click?

JavaScript 模块错误 SyntaxError : Cannot use import statement outside a module

javascript - 如何在没有jquery的情况下查找集合中元素的索引

c - 如何在c中没有for循环的情况下将用户输入存储在数组中

javascript - 带有 Form 和 $setPristine 的 Angular 1.5 组件

javascript - AngularJs 和 Codeigniter 路由导致无限重定向循环