var things = [], x;
for(x in $scope.object){
if($scope.object.hasOwnProperty(x)){
if($scope.object[x].content !== undefined){
things.push($scope.object[x].content);
}
}
}
这涵盖了确保其正常工作所需的所有检查。测试:
var $scope = {};
$scope.object = {
'thing1': {
'content': 'blah blah',
'order': '1',
},
'thing2': {
'content': 'blah blah blah',
'order': '2',
}
};
var things = [], x;
for(x in $scope.object){
if($scope.object.hasOwnProperty(x)){
if($scope.object[x].content !== undefined){
things.push($scope.object[x].content);
}
}
}
console.log(things);//logs ["blah blah", "blah blah blah"]
Object.hasOwnProperty(propertyName)
需要确保对象实际上已被赋予该属性,.content
确保该属性在那里并且值不是未定义的。
在以下情况下:
for(var x in object)
x
实际上是属性名称,在这种情况下thing1
,thing2
如果 object 被数组替换,则 x 将是每个对象的索引。