我有一个数组[0,1,2]。我尝试使用Javascript将数组值分配给JSON对象,如image1:0,image2:1,image3:2,但我感到困惑。请在这里找到我的代码
var app = angular.module('app',[]);
app.controller('EventController',function EventController($scope) {
$scope.count = 0;
$scope.next = function() {
var arr = [0,1,2];
var result = {};
for(var i = 0; i < arr.length; i++) {
result.image1 = arr[i];
result.image2 = arr[i];
result.image3 = arr[i];
}
console.log(result)
}
});
我的预期结果是Object {image1:0,image2:1,image3:2}
但实际结果是对象{image1:2,image2:2,image3:2}
答案 0 :(得分:2)
您可以使用括号运算符访问属性
for (var i = 0; i < arr.length; i++) {
result['image' + (i + 1)] = arr[i];
}
答案 1 :(得分:1)
您正在循环arr
并为您的所有属性分配相同的值。您将所有内容设置为0
,然后1
,然后2
。
忘记for
循环,只需将属性设置为所需数组中的任何条目:
var arr = [0,1,2];
var result = {
image1: arr[0],
image2: arr[1],
image3: arr[2]
};
答案 2 :(得分:0)
var app = angular.module('app',[]);
app.controller('EventController',function EventController($scope) {
$scope.count = 0;
$scope.next = function() {
var arr = [0,1,2];
var result = {};
for(var i = 0; i < arr.length; i++) {
result['image' + (i+1)] = arr[i];
}
console.log(result)
}
});
答案 3 :(得分:0)
您需要将for循环更改为
for(var i = 0; i < arr.length; i++) {
result['image'+i] = arr[i];
}