要将我的对象转换为数组,我正在使用此功能:
$scope.valuesToArray = function(obj)
{
return Object.keys(obj).map(function (key) { return obj[key]; });
}
但是我不明白为什么我的数组中使用“Array [2]”而不是“Array [0]”:
实际上,我并不关心这个数组的形式,但似乎这种方式不允许我使用,例如:
$scope.createdEvent = $scope.valuesToArray($scope.createdEvent);
console.log("What I have :", $scope.createdEvent);
console.log("I want to print this : ", $scope.createdEvent.creatorName);
// CONSOLE.LOG GOT UNDEFINED
编辑:
更具体地说,我想了解你可以在图片上看到的两个阵列之间的区别。因为它们是,它们包含完全相同的对象和信息。但是当显示“Array [2]”时,当我试图将它复制到另一个数组中时,就像这样:
$scope.newCrea = [];
$scope.newCrea = $scope.createdEvent;
console.log("TEST", $scope.newCrea); // GOT UNDEFINED
或者当我尝试在我的HTML视图中使用他的属性对象时,比如{{newCrea.creatorName}},我什么也没得到。
$ scope.createdEvent包含两个对象,foreach有两个属性:“creatorName”和“dateEvent”。
答案 0 :(得分:1)
您的代码正常,它会保留索引
对于"类似数组的对象"使用:
var myObj = {
1: ['c', 'd'],
2: ['a', 'b']
};
var myArr = Array.prototype.slice.call(myObj, 0);
您可以在这里查看http://www.nfriedly.com/techblog/2009/06/advanced-javascript-objects-arrays-and-array-like-objects/