美好的一天!
我正在通过使用push方法在索引0处添加对象并使用splice方法删除项目来处理我的Array。正如我已经阅读并理解的那样,当你从一个数组中拼接一个项目时,它不会给数组留下'undefined'项。问题是,当我使用我的拼接时,我正在获得一个“未定义”的项目。
以下是我添加条目的代码:
addOrRemoveRating(0,0,{
rating : 0,
tran_number : transaction_number,
email : $scope.called_numbers[0].email
});
以下是我删除条目的代码:
addOrRemoveRating(array_index,1);
,其中array_index是现有索引。
最后一部分是拼接发生的地方:
addOrRemoveRating = function(index, item, object){
$scope.temp_called_numbers.splice(index, item, object);
}
例如,我的数组中有3个对象 - [Object,Object,Object],在删除项目后,它返回 - [Object,Object,undefined]。
代码中是否有任何遗漏或错误的内容?非常感谢任何帮助,参考或指导。
答案 0 :(得分:0)
当您仅使用两个参数调用函数时,object
将为undefined
,因此,undefined
将添加到数组中。
试试这个
$scope.temp_called_numbers.splice.apply($scope.temp_called_numbers, arguments);
使用此功能,您可以利用Array.prototype.splice
的varargs特性,并传递多个对象以添加到数组中。
答案 1 :(得分:0)
这不是AngularJS问题,它严格来说是Javascript。使用三个参数调用splice()
将在指定位置拼接第三个参数。如果您不使用第三个参数(object
),它将只删除数组中的对象。
addOrRemoveRating = function(index, item, object){
if (object)
$scope.temp_called_numbers.splice(index, item, object);
else
$scope.temp_called_numbers.splice(index, item);
}