Javascript 从对象中删除项

Javascript 从对象中删除项,javascript,angularjs,arrays,oop,Javascript,Angularjs,Arrays,Oop,我真的很难从我的对象中删除一个项目。该对象随机生成了关键点,所以这会让它变得更难,但我无法使用splice从对象中删除该项。。。我不知道为什么 这是我的对象:$scope.todos.trackers 这就是$scope.todos的外观: function removeIndividualTracker(uid, item) { angular.forEach($scope.todos.trackers, function(key, value) { angular.f

我真的很难从我的对象中删除一个项目。该对象随机生成了关键点,所以这会让它变得更难,但我无法使用
splice
从对象中删除该项。。。我不知道为什么

这是我的对象:
$scope.todos.trackers

这就是
$scope.todos
的外观:

function removeIndividualTracker(uid, item) {
    angular.forEach($scope.todos.trackers, function(key, value) {
        angular.forEach(key, function(el, val) {
            console.log(key)
            console.log(item)
            if(key == item) {
                console.log($scope.todos)
                console.log($scope.todos.trackers)
                $scope.todos.trackers.splice($scope.todos.trackers.indexOf($scope.todos.trackers[value]), 1);
            }
        });
    });
}

这就是对象的
跟踪器
部分的外观:

function removeIndividualTracker(uid, item) {
    angular.forEach($scope.todos.trackers, function(key, value) {
        angular.forEach(key, function(el, val) {
            console.log(key)
            console.log(item)
            if(key == item) {
                console.log($scope.todos)
                console.log($scope.todos.trackers)
                $scope.todos.trackers.splice($scope.todos.trackers.indexOf($scope.todos.trackers[value]), 1);
            }
        });
    });
}

因此,为了尝试删除
tracker
对象中的一个项目(例如最后一个项目`note:“finally”,值:200),我的代码如下所示:

function removeIndividualTracker(uid, item) {
    angular.forEach($scope.todos.trackers, function(key, value) {
        angular.forEach(key, function(el, val) {
            console.log(key)
            console.log(item)
            if(key == item) {
                console.log($scope.todos)
                console.log($scope.todos.trackers)
                $scope.todos.trackers.splice($scope.todos.trackers.indexOf($scope.todos.trackers[value]), 1);
            }
        });
    });
}
但它不起作用。我得到一个错误,
$scope.todos.trackers.indexOf不是一个函数


有什么想法吗?我真的不知道该怎么办。。谢谢

之所以会出现这种错误,是因为跟踪器不是一个数组,而是一个对象。试试这样的

function removeIndividualTracker(key) {
     delete $scope.todos.trackers[key];             
}

出现此错误是因为跟踪器是一个对象。如果跟踪器是一个对象数组,则可以使用indexOf。您可以从此处阅读有关它的更多信息:

现在回到您的问题,您可以通过以下方式删除:

function removeIndividualTracker(key) {
   delete $scope.todos.trackers[key];             
}

您可以从此处了解有关删除的更多信息:

$scope.todos.trackers不是Arayi如果您使用html调用removeIndividualTracker函数,请上载html代码,这也会很有帮助