我需要能够在运行时合并两个(非常简单的)JavaScript对象.例如,我想:
var obj1 = { food: 'pizza', car: 'ford' }
var obj2 = { animal: 'dog' }
obj1.merge(obj2);
//obj1 now has three properties: food, car, and animal
Run Code Online (Sandbox Code Playgroud)
有没有人有这个脚本或知道内置的方法来做到这一点?我不需要递归,我不需要合并函数,只需要平面对象上的方法.
我有一个名为"Colorbox"(jQuery插件)的函数,它接受了许多参数,如下所示:
$(this).colorbox({
width : "500px",
height : "500px"
});
Run Code Online (Sandbox Code Playgroud)
不过,我有几种不同类型的"this",每种都有自己的属性.像这样:
var Type = {
video: {
width : "500px",
height : "500px"
},
gallery: {
width : "1065px",
height : "600px"
}
}
Run Code Online (Sandbox Code Playgroud)
除此之外,我还有其他行为,逻辑和"默认"设置组(被更具体的设置覆盖).我要做的是将所有适当的设置从多个对象推送到一个Object中,这样我就可以调用:
$(this).colorbox(Settings);
Run Code Online (Sandbox Code Playgroud)
如何将未知的属性组及其值(例如"width"和"height")从Type.video转移到Settings?目标是能够调用Settings.height并获取我推送的值.
对于表示为Javascript对象数组的表,SQL'JOIN'的实用模拟是什么?Javascript Array.join和D3.js'd3.merge`不是同一个概念.
比如SELECT * FROM authors LEFT JOIN books ON authors.id = books.author_id?
第一张表:
var authors =
[ { id: 1, name: 'adam'},
{ id: 2, name: 'bob'},
{ id: 3, name: 'charlie'}, ...
]
Run Code Online (Sandbox Code Playgroud)
第二表:
var books =
[ { author_id: 1, title: 'Coloring for beginners'},
{ author_id: 1, title: 'Advanced coloring'},
{ author_id: 2, title: '50 Hikes in New England'},
{ author_id: 2, title: '50 Hikes in Illinois'},
{ author_id: 3, title: 'String Theory for …Run Code Online (Sandbox Code Playgroud)