我认为这一定是一个常见的问题,但似乎无法找到解决方案.使用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修改以比较数组项并根据某些规则扩展或添加或设置属性值,如"名称"?
感谢您的任何建议或指示.