我有这个代码示例:
$scope.testarray = {
"a": true,
"b": true,
"c":false
};
$scope.test = function () {
alert($scope.testarray.length);
}
我期待看到警告“3”,但我得到一个“0”(在某些情况下 - 未定义),我找不到原因。
我正在使用它来创建一组复选框,同时需要数组,以便在提交表单后检查它们的状态。
答案 0 :(得分:1)
您正在使用对象而不是数组。 只有真实数组会自动跟踪“长度”属性。如果要使用对象,则需要自己处理(例如,通过在对象中创建getLength方法)。
对于真实数组,这可行,但你别无选择,只能使用基于0的索引。
$scope.testarray = [true, true, false];
$scope.test = function () {
alert($scope.testarray.length);
}
注意这看起来像全局变量,这通常是一个坏主意。
答案 1 :(得分:0)
获取哈希长度,并通过它们重申
$scope.checkboxgetfilters = function () {
alert(Object.keys($scope.filtergroup1).length);
var str = '';
for (var i in $scope.filtergroup1) {
alert($scope.filtergroup1[i]);
}
}
答案 2 :(得分:0)
如果您仍需要名称和状态
,则可以使用对象数组$scope.testarray = [
{
"name":"a",
"enabled": true
},
{
"name":"b",
"enabled": true
},
{
"name":"c",
"enabled": false
}
];
两全其美!