【发布时间】:2014-01-03 08:51:50
【问题描述】:
我有一个数组:
var allchildsAr = new Array();
我用一个具有parent 属性(一个对象)和一个chlds 属性的对象填充它,该属性是一个数组。
这是填充数组的代码:
Ti.API.info("*****allchildsAr["+level+"] is null and "+elmn+" children will be added to it ");
allchildsAr[level] = new Array({parent:elmn,chlds:elmn.getChildren()});
这是我在添加后尝试显示数组的方式:
Ti.API.info("*****allchildsAr["+level+"] after add");
allchildsAr[level].forEach(logArrayJsonElements);
logArrayJsonElements 方法如下:
function logArrayElements(elemnt, indx, array) {
Ti.API.info("*****Element at [" + indx + "] : " + elemnt.id);
}
function logArrayJsonElements(elemnt, indx, array) {
Ti.API.info("*****Element at [" + indx + "] : " + elemnt.parent.id);
elemnt.chlds.forEach(logArrayElements);
}
这很好用,但我想要的是通过logArrayElements 传递父元素,这样我就可以将它显示为数组显示元素的父元素(然后用它做其他事情..)
function logArrayElements(elemnt, indx, array, parent) {
Ti.API.info("*****Element at [" + indx + "] : " + elemnt.id+" child of :"+parent);
}
现在我很困惑,因为当在 forEach 内部调用 logArrayElements 时,它不接受参数并且它们被隐式传递,如果我像我一样添加 parent,它会被用作另一个参数(通常是element 参数)并且无论如何我都没有传递它们,所以我将如何在函数中获取parent 并使foreach 像其他参数一样传递它?
【问题讨论】:
-
我以为我已经在 StackOverflow 上了!!我没有注意到我在错误的地方..
标签: javascript arrays foreach