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我要试试这个脚本!谢谢