我想获取我在 Controller 中检索的某些数据的大小——我已经尝试了以下代码;两者都使用了新的 Object.size
函数,并试图通过 .length
length
属性
$scope.book = DataService.getBooks();
console.log($scope.book);
-- this function was only added to try and solve the problem.
Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
console.log(Object.size($scope.book['value']))
console.log($scope.book['value'].length)
这是存储在变量中的内容的图片。如您所见,.value
显然是一个包含 3 个对象和一个 length
属性的数组 - 为什么我不能直接检索它?
编辑:调用 console.log($scope.book['value'].length)
给我这个类型错误:
TypeError: Cannot read property 'length' of undefined
最佳答案
由于 $scope.book 是一个 promise ,它很可能在您的 console.log 上未解决并给您类型错误。
所以这样的事情应该可以解决你的问题
$scope.book.$promise.then(函数(){
console.log($scope.book['value'].length);
});
size 函数是不必要的且令人困惑,因为您将它设置在 Object 上,但试图获取数组的长度。
关于javascript - 无法在 Controller 内的 js 对象中获取数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25053819/