基于if语句添加到Javascript数组

时间:2014-10-06 16:09:57

标签: javascript arrays angularjs validation

我需要根据if语句的结果向数组添加错误消息。仅当我输入应触发两者的数据时,下面的代码才会返回第二条错误消息。我知道.push()不只是添加到前一个数组,但他们必须解决的唯一方法是进行for循环。我认为在某些地方我只是缺少一些简单的功能。

    $scope.error = {};
    if ($password == null || $vPassword == null || $email == null || $vEmail == null) {
        console.log('All fields must be filled in');
    } else {
        if ($scope.verifyPassword !== $scope.password) {
            $scope.error[scope.error.length()] = 'Your passwords must match...';
        }
        if ($scope.verifyEmail !== $scope.email) {
            $scope.error.push = ['Your email addresses must match...'];
        }
        console.log($scope.error);
    }

我认为代码非常明显。如果您需要更多信息,请告诉我。

谢谢!

编辑:我不确定是什么代码产生了我解释的错误。抱歉。上面的代码是废话代码,我正在弄乱试图让它工作。显然,大部分内容都没有意义。接受的答案是我最初认为产生错误但显然是有效的。抱歉这个糟糕的帖子。

2 个答案:

答案 0 :(得分:3)

push是一个函数,应该使用()调用。

$scope.error.push('Your email addresses must match...');

此外,您无法在不是Array的对象上调用push。您必须将$scope.error实例化为Array

$scope.error = [];

答案 1 :(得分:0)

您需要将$scope.error更改为数组,而不是对象,然后.push()才能正常工作。

$scope.error = [];
$scope.error.push("Your passwords must match...");

console.log($scope.error);

可生产

["Your passwords must match..."]