创建具有“值”的对象的任何缺点:“”

时间:2010-12-08 20:44:40

标签: javascript json

我现在正在跟踪数组中的内容,但除了它们在数组中之外,我不需要了解它们。例如,我可能有一个forSale数组,并且我拥有数组中待售的所有itemID。

现在工作正常,但无论如何,我一直在做一些测试,似乎object.hasOwnProperty(x)从水中吹出array.indexOf(x) !== -1(我知道他们完全不同,但我不知道知道任何其他方法来测试数组中是否有值)。这让我思考,为什么不创建类似

的东西
var saleObject = {
    "someId" : "",
    "someOtherId" : ""
};

然后我可以致电saleObject.hasOwnProperty('someId')并知道该对象正在销售中。我可以看到没有任何缺点,但这就是我在这里的原因。这样做有什么不对吗?

2 个答案:

答案 0 :(得分:2)

没有。对象的有效使用是JavaScript对象只是增强的关联数组。

另请注意,此时Array.indexOf不是标准的JavaScript方法,您不能依赖它。它仅在ECMA-262第5版中引入。

答案 1 :(得分:2)

假设您可以修改相关代码以接受新结构,那么它完全没问题。速度的差异源于对象能够进行二进制搜索以确定它是否有密钥,而indexOf必须检查数组中的每个值。