Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularJS数组元素显示为未定义_Javascript_Arrays_Angularjs_Undefined - Fatal编程技术网

Javascript angularJS数组元素显示为未定义

Javascript angularJS数组元素显示为未定义,javascript,arrays,angularjs,undefined,Javascript,Arrays,Angularjs,Undefined,我正在调试一个用angularjs编写的web应用程序,我可以看到数组包含了所有的值,但是当我开始遍历这些项并希望在我的手表上看到每个项的值时,它显示为未定义,但是我可以看到数组和值。这可能是我设置计数器的方式 这是在Chrome的开发者工具中显示的内容: 当我在项目0上选择数据[I].Name时,它表示该数据未定义,但正如您在右侧看到的,该数组包含值 你能看出我的错误在哪里吗 谢谢,, 伊拉斯莫 更新的屏幕截图 首先,您正在迭代的数据对象实际上包含另一个名为数据的属性,因此您需要在循环开始时

我正在调试一个用angularjs编写的web应用程序,我可以看到数组包含了所有的值,但是当我开始遍历这些项并希望在我的手表上看到每个项的值时,它显示为未定义,但是我可以看到数组和值。这可能是我设置计数器的方式

这是在Chrome的开发者工具中显示的内容:

当我在项目0上选择数据[I].Name时,它表示该数据未定义,但正如您在右侧看到的,该数组包含值

你能看出我的错误在哪里吗

谢谢,, 伊拉斯莫

更新的屏幕截图


首先,您正在迭代的
数据
对象实际上包含另一个名为
数据
的属性,因此您需要在循环开始时将其引用为
数据。数据

您还需要在函数回调中定义数组项,然后可以在不使用索引
i
的情况下引用它:

angular.forEach(data.data, function(item) {
    var b = {
        Name: item.Name,
        Email: item.Email
    };

    $scope.arr.push(b);
});
为了简洁起见,我将
I
保留下来,因为它与循环的操作无关。你当然可以在你认为合适的时候重新引入它

通过将此参数添加到函数回调中,可以告诉迭代器,“当我循环调用名为
data
的数组时,只需调用每个条目
”,这样您就不必维护计数器。对于更一般的示例,这两个循环产生相同的输出:

data = ['a', 'b', 'c'];

angular.forEach(['a', 'b', 'c'], function(item) {
    console.log(item);
}); 

for(var i = 0; i < data.length; i++) {
    console.log(data[i]);
}

有关更多信息,请参阅。

首先,您正在迭代的
数据
对象实际上包含另一个名为
数据
的属性,因此您需要在循环开始时将其引用为
数据.data

您还需要在函数回调中定义数组项,然后可以在不使用索引
i
的情况下引用它:

angular.forEach(data.data, function(item) {
    var b = {
        Name: item.Name,
        Email: item.Email
    };

    $scope.arr.push(b);
});
为了简洁起见,我将
I
保留下来,因为它与循环的操作无关。你当然可以在你认为合适的时候重新引入它

通过将此参数添加到函数回调中,可以告诉迭代器,“当我循环调用名为
data
的数组时,只需调用每个条目
”,这样您就不必维护计数器。对于更一般的示例,这两个循环产生相同的输出:

data = ['a', 'b', 'c'];

angular.forEach(['a', 'b', 'c'], function(item) {
    console.log(item);
}); 

for(var i = 0; i < data.length; i++) {
    console.log(data[i]);
}

有关更多信息,请参阅。

让我试试。非常感谢。我现在可以访问数组,只是现在我看到键:Name和Email是未定义的。请查看我的最新屏幕截图。所有选项均无效。我一直看到有数据的数组,但是当我尝试将值分配给b数组时,它们显示为未定义。很抱歉@Bucket,我没有很多经验。我如何向您展示物品的外观?@erasmocarlos哦,我明白为什么了-您的
data
对象实际上应该是
data.data
。看你的第一张截图。让我试试。非常感谢。我现在可以访问数组,只是现在我看到键:Name和Email是未定义的。请查看我的最新屏幕截图。所有选项均无效。我一直看到有数据的数组,但是当我尝试将值分配给b数组时,它们显示为未定义。很抱歉@Bucket,我没有很多经验。我如何向您展示物品的外观?@erasmocarlos哦,我明白为什么了-您的
data
对象实际上应该是
data.data
。查看您的第一个屏幕截图。您应该循环查看
数据。数据
您应该循环查看
数据。数据