2
2つのオブジェクトを比較し、同一のIDがある場合はオブジェクトを作成しようとしています。例えば2つのオブジェクトから同じ値でオブジェクトを作成するにはどうすればよいですか?
:
obj1 = [{"id":1,"name":"john"},{"id":2,"name":"kile"},{"id":3,"name":"kenny"},
{"id":4,"name":"stan"}]
obj2 = [{"id":1,"name":"dan"},{"id":1,"name":"ben"},{"id":1,"name":"sarah"},
{"id":2,"name":"kelly"}]
私が探している結果は次のとおりです。
result = [{1:{"id":1,"name":"john"},{"id":1,"name":"dan"},
{"id":1,"name":"ben"},{"id":1,"name":"sarah"},
//both objects from obj1 & obj 2 which holds the same ID are now in new
object "1" - which is the id that's common to them//
{2:{{"id":2,"name":"kile"},
{"id":2,"name":"kelly"}}}]
より明確にするために:
- IDの
- に一致する両方のオブジェクトで検索それらを両方とも1つのオブジェクトに積み重ねると、新しいオブジェクトには一致するIDのオブジェクトが含まれますそれらの両方からの....
私が試した:
var obj_names_1 = [{"id":1,"name":"john"},{"id":2,"name":"kile"},
{"id":3,"name":"kenny"},
{"id":4,"name":"stan"}];
var obj_names_2 = [{"id":1,"name":"dan"},{"id":1,"name":"ben"},
{"id":1,"name":"sarah"},
{"id":2,"name":"kelly"}];
function getMessages(obj1, obj2){
var messages_tab = [];
$.each(obj1, function(){
var messages_wrap = this;
var recieved_messages_id = this.id;
$.each(obj2, function(){
var sent_messages_id = this.id;
if(recieved_messages_id == sent_messages_id){
messages_tab.push({1:[this,messages_wrap]}); // key 0 should
be the common id
}
});
});
return messages_tab;
}
console.log(getMessages(obj_names_1,obj_names_2));
をしかし、ここで最初の問題は、それはあなたが1つのを超える結果
私は結果が有効ではないと思います。 – vibhor1997a