为什么它在数组之前显示未定义?

Lok*_*n.S 1 javascript json angularjs

我正在使用角度js来阅读json.

但如果我使用"+ =",它会显示未定义.

var text = '{ "employees" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';

var ojt= JSON.parse(text);

var moduleA = angular.module("ModuleA", []);
moduleA.controller("MsgController", function ($scope) {
    'use strict';
    for(var i=0; i<3; i++) {
    $scope.Message += ojt.employees[i].firstName;
    }
    });
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

    undefinedJohnAnnaPeter
Run Code Online (Sandbox Code Playgroud)

怎么了?

Luk*_*itz 5

Message未定义,然后你+=有一些字符串,因此导致你的问题.$scope.Message事先分配给空字符串以消除错误.

$scope.Message = ""
for(var i=0; i<3; i++) {
    $scope.Message += ojt.employees[i].firstName;
}
Run Code Online (Sandbox Code Playgroud)

编辑:如果要在名称\n之间添加每个名称后添加新行.

$scope.Message = ""
for(var i=0; i<3; i++) {
    $scope.Message += ojt.employees[i].firstName + "\n";
}
Run Code Online (Sandbox Code Playgroud)