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