我有两个对象:
{ query="twitter.com", tags="dog" }
和
{ tags="funny" }
我理想的合并输出是:
{ query="twitter.com", tags="dog,funny" }
我看过Underscore / jQuery扩展方法,它们似乎只是取代了“狗”和“狗”。有趣的'而不是将两者结合起来。
有没有人有任何建议?
谢谢!
答案 0 :(得分:1)
您可以使用map
以下是摘录:
_.map(arr, function(val, key){
if(arr1[key] != undefined) arr[key] = val + "," + arr1[key];
});
答案 1 :(得分:0)
你去:
这将适用于您需要组合的多个对象:`combine(data1,data2,....,dataN)
var data1 = {query:"twitter.com", tags: "dog"};
var data2 = {tags: "funny" }
var combine = function() {
var obj = {};
for(var i in arguments){
var curr = arguments[i];
for(var key in curr){
if(!obj[key]) obj[key] = [];
obj[key].push(curr[key]);
}
}
var __obj={};
for(var key in obj)
__obj[key] = obj[key].join(",");
return __obj;
}
document.write(JSON.stringify(combine(data1, data2)));
答案 2 :(得分:0)
通过使用.each
函数,我们可以执行您想要的操作尝试此代码
var arr= { query:"twitter.com", tags:"dog" };
var arr1 = { tags:"funny" };
$.each(arr, function(key, val){
if(arr1[key] != undefined)
{
arr1[key] = arr1[key] + "," + val;
}
else
{
arr1[key] = val;
}
});
console.log(arr1);
上运行代码
答案 3 :(得分:0)
试试这个:
var obj1 = { query:"twitter.com", tags:"dog" } ,obj2 = { tags:"funny" };
$.each(obj1, function(key,val){
if(typeof obj2[key] != 'undefined')
obj1[key] = val + ',' + obj2[key];
});
alert(JSON.stringify(obj1))