仅当散列不包含我要添加的散列时,我才需要将散列插入数组中。 例如我有一个哈希数组:
var someArray = [
{field_1 : "someValue_1", field_2 : "someValue_2"},
{field_1 : "someValue_3", field_2 : "someValue_4"},
{field_1 : "someValue_5", field_2 : "someValue_6"}
]
值(value)
{field_1 : "someValue_1", field_2 : "someValue_2"}
不应将其插入数组,因为它已经存在,但值
{field_1 : "someValue_7", field_2 : "someValue_8"}
应该,因为数组不包含这样的值。
有没有办法使用 jQuery 来做到这一点?
现在我只是使用 $.each 循环并检查数组是否包含一些哈希值。如果是的话我会触发一个标志。但我不喜欢这个解决方案。
最佳答案
- 创建自定义原型(prototype)来检查数组中是否存在对象。请查看下面的原型(prototype)设计。
Array.prototype.contains=function(x){ for(i in this){ if((x.field_1==this[i].field_1)&&(x.field_2==this[i].field_2)) return true; } return false; }
- 使用上面的原型(prototype),您可以检查数组中是否存在对象。
var someArray = [ {field_1 : "someValue_1", field_2 : "someValue_2"}, {field_1 : "someValue_3", field_2 : "someValue_4"}, {field_1 : "someValue_5", field_2 : "someValue_6"} ]; var a1={field_1 : "someValue_1", field_2 : "someValue_2"}; var a2={field_1 : "someValue_7", field_2 : "someValue_8"}; if(!someArray.contains(a1)) someArray.push(obj); // it will NOT BE pushed if(!someArray.contains(a2)) someArray.push(obj); // it will be pushed
关于javascript - JavaScript 哈希中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8976128/