gpt4 book ai didi

javascript - 为什么对象数组在 firebug 中显示为空白,尽管它包含项目 - Javascript + AngularJS

转载 作者:行者123 更新时间:2023-11-28 18:54:19 26 4
gpt4 key购买 nike

以下是屏幕截图,我无法追踪 JavaScript 出了什么问题。

如果您看到 firebug 中的数组显示一个空白数组,并且如果我控制台长度,它也会出现 0。但是如果我单击(+)图标,它就会显示数据。让我知道我的代码做错了什么。

代码-

            //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;

Firebug 屏幕截图 -

Image

最佳答案

了解可以使用括号或点表示法访问对象会很有帮助。另请注意,数组也是对象

所以myObj有属性(property)myProp可以使用 myObj["myProp"] 访问或myObj.myProp 。当我们想要动态访问属性但在设计时不知道它的标识符时,方括号表示法非常有用。即我们想要使用动态创建的标签:

var label = "myProp";
myObj[label] = "xyz";

所以上面的要点是方括号表示法是引用 properties 的一种方式。一个物体的。在您的代码中,您执行以下操作:

newArr['week'+weekNum] = [];

显然是为了使用 'week'+weekNum作为数组的索引,但它实际上所做的是进行属性分配。这样你就可以继续制作'week'+weekNum整整一周,数组长度仍然为零,因为您没有将元素分配给数组,而是生成新属性。

你可能想要的只是

newArr[weekNum] = [];

关于javascript - 为什么对象数组在 firebug 中显示为空白,尽管它包含项目 - Javascript + AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com