将哈希推入阵列。想要更新同名attr的计数。哈希

时间:2014-03-25 00:59:37

标签: javascript jquery

所以,我正在将哈希推入数组。一些哈希值相同 - 包含所有相同的值。在这些情况下,我想不要将哈希值推入,但是更新原始哈希值为+1。

例如。

var hashes = {};
var newHashes = {};

// in this case, 'h' is a key that CAN exists later on again
hashes[h] = {
   val1: 'val1',
   val2: 'val2'
}

jQuery.extend(true, newHashesContainer, h)
someArray.push(h)

确定。一段时间后,我有相同的内容,我将其推入PUSH_ARRAY函数

if (newHashContainer[h]) hashes[h].count++

//我知道它已经存在,所以我想现在为它添加一个count属性,并在每次出现相同的密钥哈希时递增。我似乎无法围绕它进行思考。

1 个答案:

答案 0 :(得分:0)

如果该属性尚不存在,您只需创建该属性,然后就可以增加该值。

因此,如果您已经检查过hashes[h]具有您想要的值,并且您只想增加该对象的计数,则可以像这样创建和增加计数:

if (newHashContainer[h]) {
    // Assumes that prior code has already make sure
    // that hashes[h] exists
    // Here, we just make sure that the .count property exists
    // and then increment it
    if (!hashes[h].count) {
        hashes[h].count = 0;
    }
    hashes[h].count++
}

您的问题并未明确newHashContainer[h]的作用,但我假设它确保新散列位于hashes对象中。如果这不是它的作用,请进一步解释您需要帮助的内容或该功能的作用。