我有一个这样的
JavaScript对象数组:
Box[0] = {...} Box[1] = {...} Box[2] = {...} ... Box[499] = {...}
此对象由相同的构造函数生成,并添加到循环内的数组中.这些对象在原型中有方法,需要知道数组中的对象的索引来做它们的东西.目前我正在做的是在循环中创建它时,在每个对象内设置一个名为id的属性,等于数组索引.这样的事情
Box[i].id = i;
但是我并不完全满意,因为每次使用sort()对数组进行重新排序时,我必须运行一个循环,以使用新的索引值更新id属性.
我的问题是如果有一种方法来知道一个对象中的数组中的索引,而不必设置id属性,希望你能帮助我.
提前致谢.
解决方法
我不认为Array中的对象内的函数将会意识到引用它的Array的索引.
因为Array中的每个项目都只是简单地指向内存中的对象,所以可以想象到引用同一对象的数十个数组项,变量,对象属性等,所以函数(或包含函数的对象)不知道你希望做出什么回溯参考.
如果您需要知道其在数组中的索引,我猜你会坚持做你正在做的事情.
我想这个函数可以对Array调用indexOf(),因为它返回一个索引,但是每次调用都需要一些开销,你需要将它添加到不受支持的浏览器中.
theArr.indexOf( this ); // assuming the function was called from the context // of the object in question