在Javascript中使用ForEach填充数组对象时是否需要定义数组对象?

时间:2013-11-17 10:58:01

标签: javascript

我有以下代码:

if (!$scope.aa.hasOwnProperty('x')) {
    $scope.aa.x = {}
    data.answers.forEach(function (element, index) {
        $scope.aa.x[index].c = null;
        $scope.aa.x[index].r = null;
        $scope.aa.x[index].text = element.text;
    });
}

但它给了我一个错误:

TypeError: Cannot set property 'c' of undefined

我是否需要为aa定义一个数组,如果是,我该怎么办呢?

2 个答案:

答案 0 :(得分:2)

CD的另一个更惯用的答案是:

$scope.aa.x[index] = {
    c : null,
    r : null,
    text : element.text
}

答案 1 :(得分:1)

是。看起来xarrayx[index]object

        $scope.aa.x = [];
        data.answers.forEach(function (element, index) {
            $scope.aa.x[index] = {};
            $scope.aa.x[index].c = null;
            $scope.aa.x[index].r = null;
            $scope.aa.x[index].text = element.text;  
        });