Javascript 向对象添加结果

Javascript 向对象添加结果,javascript,Javascript,我有一个小函数,它将返回的结果添加到对象列表中,但我的问题是,如果存在某个重复,它将不允许它-但有些方面会发生重复,而有些方面则不允许 我将用例子更好地解释: var data = {"24":{"16":["172"],"15":["160"]}} 此数据列表转换为: var data = {"X":{"Y":["id"],"Y":["id"]}}; 现在,我尝试插入如下新数据: for(var key in result){ if(resu

我有一个小函数,它将返回的结果添加到对象列表中,但我的问题是,如果存在某个重复,它将不允许它-但有些方面会发生重复,而有些方面则不允许

我将用例子更好地解释:

var data = {"24":{"16":["172"],"15":["160"]}}
此数据列表转换为:

var data = {"X":{"Y":["id"],"Y":["id"]}};
现在,我尝试插入如下新数据:

    for(var key in result){              
      if(result.hasOwnProperty(key)){  
      data[key] = result[key];     
        }
    }

如果你考虑网格坐标,在我的对象列表中,Y不能在同一个X中复制,X不能复制。

这是我试图插入的“结果”的示例数据:

{24: {13:[187]}}
因此,将var数据转换为:

var data = {"24":{"16":["172"],"15":["160"],"13":["187"]}};
有人知道我如何为我的循环实现重复检查吗

// Declare this temporary object we'll use later
var obj = {}

for ( var key in result ){              
    if ( result.hasOwnProperty( key ) ) {
        // If the key already exists
        if ( data[ key ] === result[ key ] ) {

            // Empty the temporary object
            obj = {}
            // Loop through the subkeys
            for ( var subkey in result[ key ] ) {              
                if ( result[ key ].hasOwnProperty( [ subkey ] ) ) {

                    // Fill in the temporary object
                    obj[ subkey ] = result[ key ][ subkey ]
                }
            }

            // Add the new object to the original object
            data[ key ] = obj
        }

        // If the key doesn't exist, do it normally
        else {
            data[ key ] = result[ key ]
        }
    }
}

// Now, to be tedious, let's free up the memory of the temporary object!
obj = null
这样的办法应该行得通。如果发生冲突,我将重建内联对象,以便将其与所有原始键/值和新键/值一起添加回去


PS:最后一行只是为了好玩。

在尝试添加它之前,你不能测试
if(键入数据)
if(data.hasOwnProperty(key))
吗?但是如果key被证明是在数据中,它将如何添加其余的数据。。例如如果X已经被找到,它仍然需要向已经存在的席添加Y[ID],不知道要复制数据的情况,当你不知道的时候,我认为中的<代码>可以帮助你决定做什么。谢谢你刚才回答了一个我想问的关于如何释放内存的问题:P!幽灵:P我要试试这个脚本!谢谢