我需要能够在运行时合并两个(非常简单的)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)
有没有人有这个脚本或知道内置的方法来做到这一点?我不需要递归,我不需要合并函数,只需要平面对象上的方法.
我需要使用youtube的API加载多个视频.这是我第一次使用它,所以我不确定我做错了什么,但这就是我正在尝试的:
var player;
var player2;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
videoId: 'hdy78ehsjdi'
});
player2 = new YT.Player('player', {
videoId: '81hdjskilct'
});
}
Run Code Online (Sandbox Code Playgroud) 我认为这一定是一个常见的问题,但似乎无法找到解决方案.使用JSON配置文件来扩展包含对象和数组的jQuery对象.
对于对象和简单属性,我想覆盖(extend很好).
对于阵列,可能存在也可能不存在现有项目.
目前,数组只会覆盖第一个元素
var sourceObj = {propterty:"change Me",anArray:[{name:"first"},{name:"second"}]},
configJSON = '{"propterty":"New Val","anArray":[{"name":"third"}]}',
configObj = JSON.parse(configJSON);
$.extend(true,sourceObj,configObj);
Run Code Online (Sandbox Code Playgroud)
返回:
{propterty:"New Val" , anArray:[{name:"third"},{name:"second"}}
Run Code Online (Sandbox Code Playgroud)
我可以改为:
{propterty:"New Val",anArray:[{name:"first"},{name:"second"},{name:"third"}]}
Run Code Online (Sandbox Code Playgroud)
而且还允许更新"第一"和"第二"对象?
"anArray":[{"name":"second","newProp":"add newProp to second"}]
Run Code Online (Sandbox Code Playgroud)
可以/应该extend修改以比较数组项并根据某些规则扩展或添加或设置属性值,如"名称"?
感谢您的任何建议或指示.
我已经使用jQuery很久了,所以在编写代码时,Vanilla JS我有点想知道我们如何才能使用类似的东西$。在香草JS中扩展。
你有没有在javascript中合并两个jsons?
问题:
a={id:123,name:john,status:success};
b={id:123,status:inprocess,transId:245};
Run Code Online (Sandbox Code Playgroud)
输出json应该是这样的
{id:123,name:john,status:success,transId:245};
Run Code Online (Sandbox Code Playgroud)
a中的所有值都应覆盖b中的值,并且不常见的键/值应出现在输出json中.
我尝试了一些递归选项,但是cudnt实现了输出.