Я пытаюсь создать объект json в AngularJS. Мой код выглядит так:
for(i=0;i<5;i++){
var dCol = file.columns[i].value;
var dRow = file.rows[i].value;
$scope.fileContents.push({ dCol: dRow });
}
Но значение dCol не отражает. Он принимает dCol как строку "dCol".
Может кто-то, пожалуйста, помогите мне. Я новичок в angularJS. Я бы очень признателен вам за вашу помощь.
Вместо этого:
$scope.fileContents.push({ dCol: dRow });
сделайте следующее:
var tmpObj = {};
tmpObj[dCol] = dRow;
$scope.fileContents.push(tmpObj);
Вы немного смущены различиями между переменными и свойствами объекта, в вашем примере вы добавляете свойство с именем dCol к объекту, вложенному в fileContents...
кстати, если переменная dCol является строкой, вы можете сделать что-то вроде этого:
var item = {}; item[dcol] = dRow; fileContents.push(item);
если переменная dCol не является строкой, вы можете подумать о ее добавлении к объекту:
fileContents.push({ "dCol": dCol, "dRow": dRow });
что поскольку dCol
является ключом, а ключ всегда является строкой в объекте JS;
попробуй это:
for(i=0;i<5;i++){
var obj ={};
var dCol = file.columns[i].value;
var dRow = file.rows[i].value;
obj[dCol]=dRow;
$scope.fileContents.push(obj);
}
если вам нравится более синтетический подход, это должно работать:
$scope.fileContents.push({ [dCol]: dRow });