【问题标题】:jQuery extent JSON array parameter replacejQuery范围JSON数组参数替换
【发布时间】:2016-04-27 11:56:28
【问题描述】:

我正在尝试了解 jquery 扩展方法,根据 API documentation

$.extend() 执行的合并默认不是递归的;如果一个 第一个对象的属性本身是一个对象或数组,它将是 在第二个中被具有相同键的属性完全覆盖 或后续对象。值未合并。

它说数组或对象属性不会合并,将被替换。在下面的示例中,参数是 JSON 数组,它正在合并而不是被替换。

var a = {
    external : true,
    parameter : [{name:'ip1'},{name:'ip2'},{name:'ip3'}]

};
var b = {
    data:'Sumeet',
    parameter : [{name:'ip1'},{name:'ip2'}]
};


$.extend(true,a,b);

console.log(a);

Output : 


{
  data: "Sumeet",
  external: true,
  parameter: [{
     name: "ip1"
  }, {
    name: "ip2"
  }, {
    name: "ip3"
 }]
}

参数应该只有ip1和ip2

【问题讨论】:

标签: javascript jquery arrays json


【解决方案1】:

请注意,您的引文说“默认情况下”。后来的文档还说:

但是,通过将true 传递给第一个函数参数,对象将被递归合并。

整段:

$.extend()执行的合并默认不是递归的;如果第一个对象的属性本身是一个对象或数组,它将被第二个或后续对象中具有相同键的属性完全覆盖。值不会合并。这可以通过检查香蕉的值在下面的示例中看到。但是,通过将true 传递给第一个函数参数,对象将被递归合并。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多