Angular JS将Object复制到另一个for循环中

时间:2015-04-24 14:57:46

标签: javascript arrays angularjs loops object

尝试将json对象的一部分复制到另一个json对象(即过滤器),到for循环中,在条件语句下,它不起作用。

这项工作可以写一个数组:

$scope.candidats=[];
for (i=0;i<omegaCandidats.length;i++){
    if (omegaCandidats[i].dateRdv==date){ 
        $scope.candidats.push(
            {
             "id"       :omegaCandidats[i].id,
             "prenom"   :omegaCandidats[i].prenom,
             "nom"      :omegaCandidats[i].nom,
             "heure"    :omegaCandidats[i].heure,
             "dateRdv"  :omegaCandidats[i].date
            }
        )
    };
};

这不起作用,这就是我想做的事情。它合乎逻辑,应该有效:

$scope.candidats=[];
for (i=0;i<omegaCandidats.length;i++){
    if (omegaCandidats[i].dateRdv==date){ 
        $scope.candidats[i] = omegaCandidats[i];
    };
};

这一个工作,但只得到一个for循环的值无用:

$scope.candidats=[];
for (i=0;i<omegaCandidats.length;i++){
    if (omegaCandidats[i].dateRdv==date){ 
        $scope.candidats[0] = omegaCandidats[i];
    };
};

3 个答案:

答案 0 :(得分:3)

使用过滤器怎么样:

$scope.candidats = omegaCandidats.filter(function(candidat){ 
    return candidat.dateRdv == date;
});

答案 1 :(得分:2)

您可以使用过滤器阵列方法,试试这个:

$scope.candidats = omegaCandidats.filter(function(item) {
    return item.dateRdv==date;
});

答案 2 :(得分:0)

我认为这应该有效:

$scope.candidats=[];
    for (i=0;i<omegaCandidats.length;i++){

        if (omegaCandidats[i].dateRdv==date){ 

            //$scope.candidats.push(omegaCandidats[i]);

            $scope.candidats.push(angular.copy(omegaCandidats[i]));
            //copy will create a new reference for your object.
        };
    };

你拥有的代码对我来说不符合逻辑:

$scope.candidats=[];
    for (i=0;i<omegaCandidats.length;i++){
        if (omegaCandidats[i].dateRdv==date){ 
            $scope.candidats[i] = omegaCandidats[i]; // This can't work because $scope.candidats[i] is not defined.
            // You would also have an inconsistent array
        };
    };