Javascript 如果先前已删除索引较小的对象,则删除对象失败。

Javascript 如果先前已删除索引较小的对象,则删除对象失败。,javascript,json,angularjs,Javascript,Json,Angularjs,我试图创建一个表示程序的多层对象,你可以看到我在这里做什么 假设我加上3周,每次3天,每次3节课。我可以移除这些对象,只要我不移除,比如说在第二天之前,我尝试移除第三天的会话 这是密码 html 你好 看看这把小提琴,看看你想实现什么 我还没做完小提琴,你就把先前的问题删掉了 你是说,只要某个对象的前一个同级不存在,你就不能删除该对象吗?如果我删除某个对象,我就不能删除后续同级的子对象。我相信我可以很好地删除兄弟姐妹。谢谢你的回答,我现在正在查看它,虽然它可以添加和删除几个星期,但我很难判断它

我试图创建一个表示程序的多层对象,你可以看到我在这里做什么

假设我加上3周,每次3天,每次3节课。我可以移除这些对象,只要我不移除,比如说在第二天之前,我尝试移除第三天的会话

这是密码

html

你好 看看这把小提琴,看看你想实现什么 我还没做完小提琴,你就把先前的问题删掉了


你是说,只要某个对象的前一个同级不存在,你就不能删除该对象吗?如果我删除某个对象,我就不能删除后续同级的子对象。我相信我可以很好地删除兄弟姐妹。谢谢你的回答,我现在正在查看它,虽然它可以添加和删除几个星期,但我很难判断它是否有助于解决我目前面临的问题,因为它与我处理问题的方式大不相同。我会努力弄明白的,非常感谢。这帮了大忙,并不像我预期的那么难弄明白,除非我删除所有内容并重新开始,否则它会破坏我的添加方法。我的问题中也有详细的说明,如果您对此有任何建议,那也很好。
<div ng-app="trainercompare">

 <div ng-controller="programsController">
    <form ng-submit="addProgram()" name='form' novalidate>

        <p>
a program
        </p>

        <button type ="button" ng-click="addWeek()"> add week</button>

        <!-- create weeks -->
        <div ng-repeat="week in program.weeks" ng-init="weekindex = $index">

            <p>
            a week
            </p>

            <!-- create days -->
            <div ng-repeat="day in week.days" ng-init="dayindex = $index">

                <p>
                a day
                </p>
                <!-- create sessions -->

                <div ng-repeat="session in day.sessions" ng-init="sessionindex = $index">
                    <h2>a Session</h2>
                    <button type ="button" ng-click="removeSession(weekindex, dayindex, sessionindex)"> Remove Session</button>
                </div>
                <button type ="button" ng-click="addSession(weekindex, dayindex)"> Add Session</button>
                <button type ="button" ng-click="removeDay(weekindex, dayindex)"> Remove day</button>
            </div>
            <button type ="button" ng-click="addDay($index)"> Add Day</button>
            <button type ="button" ng-click="remove($index)"> Remove week</button>
        </div>

        <button type="submit"> add program</button>
    </form>
 </div>

</div>
var myModule = angular.module("trainercompare", ['ui.bootstrap']);

function programsController($scope, $http) {

    var numweeks = 1;
    $scope.program = { 

    };

    $scope.addWeek = function() {

        if (isDefined($scope.program.weeks)) {
            $scope.program.weeks.push(
                {

                }
            );

        } else {
            $scope.program = { 
                weeks: [
                    {

                    }
                ]
            };
        }
    };

    $scope.addDay = function(index) {

        if (isDefined($scope.program.weeks[index].days)) {
            $scope.program.weeks[index].days.push(
                {

                }
            );

        } else {
            $scope.program.weeks[index] = { 
                days: [
                    {

                    }
                ]
            };
        }
    };

    $scope.addSession = function(weekindex, dayindex) {

        if (isDefined($scope.program.weeks[weekindex].days[dayindex].sessions)) {
            $scope.program.weeks[weekindex].days[dayindex].sessions.push(
                {

                }
            );

        } else {
            $scope.program.weeks[weekindex].days[dayindex] = { 
                sessions: [
                    {

                    }
                ]
            };
        }
    };

    $scope.remove = function(index) {
        $scope.program.weeks.splice(index, 1);

        console.log(index);

    };

    $scope.removeDay = function(weekindex, dayindex) {
        $scope.program.weeks[weekindex].days.splice(dayindex, 1);

        console.log(dayindex);

    };

    $scope.removeSession = function(weekindex, dayindex, sessionindex) {
        $scope.program.weeks[weekindex].days[dayindex].sessions.splice(dayindex, 1);

        console.log(sessionindex);

    };

    function isDefined(x) {

    return x !== undefined;
    }

    $scope.addProgram = function() {

        console.log($scope.program);

        $http.post('/programs', $scope.program).success(function(data, status) {
            if(isDefined(data.errors)) {
                console.log(data.errors);
                $scope.errors = data.errors;
                }
            if(isDefined(data.success)) {
                console.log(data.success);
                $scope.errors = [];
            }
        });

    }; 


}
var imust accompany with code