foreach对象循环添加到堆栈顶部
foreach object looping adding on top of the stack
我有一个js对象,它是这样的:
function test{
this.variable = {};
this.populate = function(){
// do some crap....
// and i populate the object like this
this.variable{xyz..} = new object();
}
this.outputThecrap(){
for (var key in data) {
if (data.hasOwnProperty(key)) {
if(data[key].idParent != '0'){
//do some stuff
}
}
}
}
this.addSomeOnBeginigQQ(){
// how do i do that!!!!Q_Q
this.variable{blabla...} = new blabla();
}
}
现在,在我像一样填充对象之后
var t = new test();
t.populate();
t.addSomeOnBegining();
t.outputThecrap();
我遇到的问题是,添加的属性最终会出现在循环的末尾。。。我需要他们在的顶端
有人知道如何解决这个问题吗?
更新:
对象的结构不可更改。我也不能将数组用作容器,这是毫无疑问的。
如果您想要一个堆栈,则需要使用Array
-一个具有定义顺序的列表。JavaScript中没有对象属性,也没有类似于"关联数组"的东西。此外,你应该是原型。
您可以像设置对象一样设置数组的属性,但属性名称必须是数字(即整数)。然后使用for
-循环对它们进行循环。Array
对象还有一些额外的方法,例如在开头或结尾添加项目(我在下面使用过):
function Test() {
this.data = []; // an array
}
Test.prototype.populate = function(){
// populate the array like this
this.data.push({…});
};
Test.prototype.outputThecrap = function(){
for (var i=0; i<this.data.length; i++) {
var item = this.data[i];
if (item /* has the right properties*/)
//do some stuff
}
};
Test.prototype.addSomeOnBeginning(){
this.data.unshift({…});
};
然后这样使用:
var t = new Test();
t.populate();
t.addSomeOnBeginning();
t.outputThecrap();
"有序密钥数组"如下所示:
function Test() {
this.data = {}; // the object
this.order = []; // an array
}
Test.prototype.populate = function(){
this.data["something"] = {…}
this.order.push("something");
};
Test.prototype.addSomeOnBeginning(){
this.data["other"] = {…};
this.order.unshift("other");
};
Test.prototype.outputThecrap = function(){
for (var i=0; i<this.order.length; i++) {
var key = this.order[i],
item = this.data[key];
if (item && key /* fulfill your requirements */)
// do some stuff
}
};
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- Rails File_field最大堆栈大小
- d3中堆栈函数和嵌套函数之间的差异
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- jQuery粘性插件可变顶部间距
- 使用jQuery更改元素的顶部位置
- 背景图像顶部的滚动图像不移动
- 滚动然后捕捉到顶部而不是取消捕捉
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 为什么我的JavaScript堆栈排序函数不起作用
- 超过了async.detect最大调用堆栈大小
- 如何远程检查JavaScript应用程序的函数调用堆栈
- 如何在离子框架+有角度的框架中制作顶部标签
- 计算“;“左”;以及“;顶部“;来自固定位置浮动元素的值
- 如何在引导程序元素的顶部添加掩码
- 滚动到Rails 4应用程序中的顶部jQuery
- 将列表元素动画制作到顶部
- 抵消在具有pageY计算的相对容器中位于顶部
- foreach对象循环添加到堆栈顶部
- 当在堆栈底部添加ImageView时,我想删除RelativeLayout中的顶部ImageView,但它正在删除整个布