【发布时间】:2011-01-21 03:09:21
【问题描述】:
我有一个这样的 JavaScript 对象数组:
box[0] = {...}
box[1] = {...}
box[2] = {...}
...
box[499] = {...}
这些对象由相同的构造函数生成,并在循环内添加到数组中。对象在原型中有方法,这些方法需要知道数组中对象的 index 才能完成它们的工作。目前我正在做的是在每个对象内部设置一个名为id 的属性,当我在循环中创建它时,它等于数组索引。像这样的:
box[i].id = i;
但是我对此并不完全满意,因为每次我使用 sort() 重新排序数组时,我都必须运行一个循环来使用新的索引值更新 id 属性。
我的问题是,是否有办法在对象内部知道它在数组中的 index,而无需设置 id 属性,希望您能帮助我。
提前致谢。
【问题讨论】:
-
我认为如果对象方法需要知道其对象的索引,它们不属于对象。它们要么属于单例实例,要么属于数组。
-
查看 patrick 的好答案。这种类型的耦合总是会导致很多失败。指出的案例只是问题的“提示”。也许对于不同(但相关)的问题有可行的解决方案。
标签: javascript arrays object