检查具有相同属性的对象是否在数组中 - coffeescript

时间:2016-02-05 18:37:13

标签: javascript arrays coffeescript equality

所以我正在构建一个过滤系统。我有一组键值对(kvp)对象,我想检查是否已经添加了一个kvp。如果kvp有我要删除它,如果它没有我想将它添加到数组。但是我无法检查深度平等。我不能使用对象而不是数组,因为键可以是相同的(例如{state: TX}{state: NE})。此代码不检查深度相等,因此它总是推送一个新的kvp。

if kvp in filters
    pos = filters.indexOf(kvp)
    filters.splice(pos, 1)
else
    filters.push(kvp) 

我也试过这个,但它也没有检查深度相等(以及指数增长的过滤器)。

if filters.length == 0
    filters.push(kvp)
else
    for filter in filters
        if kvp == filter
            pos = filters.indexOf(filter)
            filters.splice(pos, 1)
        else
            filters.push(kvp)

有什么建议吗?

0 个答案:

没有答案