以下是截图,我无法用JavaScript跟踪这里出现的问题。
如果你看到firebug中的数组显示一个空白数组,并且如果我控制它的长度,它也会显示 //scope.days is an array of objects
var newArr = [];
var myArr = [];
myArr = scope.days;
console.log(myArr.length);
var weekNum = 1;
newArr['week'+weekNum] = [];
for(var i=1; i<= myArr.length; i++) {
newArr['week'+weekNum].push(myArr[i]);
if(i%7 == 0){
weekNum = weekNum + 1;
newArr['week'+weekNum] = [];
}
}
scope.days = newArr;
。但是,如果我单击(+)图标显示数据。让我知道我在代码中做错了什么。
代码 -
UIImageView* myImageView = [[UIImageView alloc]initWithFrame:self.view.frame];
[myImageView setImage:[UIImage imageNamed:@"yourImage.jpg"]];
[self.view addSubview:myImageView];
Firebug屏幕截图 -
答案 0 :(得分:2)
了解可以使用括号或点表示法访问对象很有帮助。另请注意,数组也是对象。
因此可以使用myObj
或myProp
访问具有属性myObj["myProp"]
的{{1}}。当我们想要动态访问属性但在设计时我们不知道它的标识符时,方括号表示法很有用。即我们想要使用动态创建的标签:
myObj.myProp
因此,上述观点是方括号表示法是一种引用对象var label = "myProp";
myObj[label] = "xyz";
的方法。在您的代码中,您执行此操作:
properties
显然是为了使用newArr['week'+weekNum] = [];
作为数组的索引,而是实际做的是进行属性赋值。因此,您可以继续整周'week'+weekNum
,并且数组长度仍然为零,因为您没有将元素分配给数组,而是生成新属性。
你可能想要的只是
'week'+weekNum
答案 1 :(得分:1)
Array
的索引来自0
及以上。您的数组不包含任何项目。虽然它确实有属性。
您像Object
一样使用它。如果你这样定义它(newArr = { }
),Firebug会更好地了解如何渲染它。