无法为变量赋值 - Javascript

Cannot assign value to a variable - Javascript

我无法将“$scope.returnPollings[i]”的值分配给 "plrtn" 在循环期间。 “$scope.returnPollings”是一个带有数据的对象,当我 console.log 它时,我可以确认其中有数据。

    db.transaction (function(tx) {
        var sql = "INSERT INTO STATUSREPLY (reply, name, userCode, icon, target, repliedDate) VALUES (?, ?, ?, ?, ?, ?)";
        var len = $scope.returnPollings.length;
        var plrtn;                              
        for (var i = 0; i < len; i++) {
            plrtn = $scope.returnPollings[i]; // value is not being assigned here
            tx.executeSql(sql, [plrtn.message, plrtn.name, plrtn.userCode, plrtn.qWink, plrtn.target, plrtn.createdDate ], 
                function(){ 
                        $scope.$apply(function(){
                            $scope.returnFstatus.push({
                                'message':$scope.ie.message, 
                                'createdDate':$scope.ie.createdDate, 
                                'icon':$scope.ie.qWink, 
                                'target':$scope.ie.target 
                                    });
                            })                                  
                    console.log('Status Inserted');
           },function(tx, error) {
                console.log('polling INSERT ERROR: ' + error.message);
                                 });
                            }

});

如果有人能帮助我,我会很高兴

$scope.returnPollings的价值

var plrtn;  
console.log($scope.returnPollings);
for (var i = 0; i < len; i++) {

您得到了 $scope.returnPollings[0]
的两个值 在控制台中,您应该能够看到
$scope.returnPollings[0] 的两个(长度)值和 $scope.returnPollings[1]

还有

$scope.returnPollings[0].message
$scope.returnPollings[0].name
$scope.returnPollings[0].userCode
$scope.returnPollings[0].q

$scope.returnPollings[1].message
$scope.returnPollings[1].name
$scope.returnPollings[1].userCode
$scope.returnPollings[1].q

在您的 SQL 中您不需要使用 plrtn

相反,您可以使用:

$scope.returnPollings[i].message
$scope.returnPollings[i].name
$scope.returnPollings[i].userCode
$scope.returnPollings[i].q

答案是,您对同一个变量赋值不止一次。 我会这样做:

plrtn;//without var
        for (var i = 0; i < len; i++) {
            delete plrtn;
            plrtn = $scope.returnPollings[i]; // value is not being assigned here