我有一个奇怪的问题:我在JavaScript中有一个for循环,在Chrome中完全按预期运行,但在Firefox或IE中没有。在Firefox和IE中,它为数组添加了一个未定义的项目,我不知道为什么。
angular.module('app', [])
.controller('itemCtrl', function($scope){
$scope.itemsa = [
{ name: 'testa' },
{ name: 'testb' }
];
$scope.itemsb = [];
$scope.doSomething = function(IDparam) {
for(var i = 0; i < $scope.itemsb.length; i++){
if ($scope.itemsb[i].name === $scope.itemsa[IDparam].name) { ... }; };
根据两个浏览器中的开发人员工具,$scope.itemb
在for循环起始行for(var i = 0; i < $scope.itemsb.length; i++)
中的长度为0但是(无论出于何种原因)它仍然启动for循环(它不应该从我所知道的)然后在下面的行if ($scope.itemsb[i].name === $scope.itemsa[IDparam].name)
中出现了一个未定义的0数组位置的项目(然后产生错误)。
有什么想法吗?