jQuery从数组扩展一个json元素
jquery extend a json element from an array
这是我的原始数组:
var myArray = [
{"A":"1", "B":"2"},
{"C":"3", "D":"4"},
{"E":"5", "F":"6"}
]
然后我创建这个 myArray 的副本:
var copyArray = $.merge([], myArray);
现在我只想扩展 copyArray 的第一个元素:
$.extend(copyArray[0], { "Hello": "World" });
但结果是myArray和copyArray都被改变了。我只想改变复制数组。它们都更改为下面:
[
{"A":"1", "B":"2", "Hello":"World"},
{"C":"3", "D":"4"},
{"E":"5", "F":"6"}
]
这是我的小提琴来展示这一点:http://jsfiddle.net/LesignButure/GFVUy/
如果数组中存在对象,则保留引用;即它不做深拷贝。
jQuery的exten方法在将true值作为初始参数传递时执行深度复制:
$.extend(true, [], myArray );
吉斯菲德尔
var myArray = [
{"A":"1", "B":"2"},
{"C":"3", "D":"4"},
{"E":"5", "F":"6"}
];
var copyArray = $.extend(true, [], myArray);
$.extend(copyArray[0], { "Hello": "World" });
console.log(myArray);
console.log(copyArray);
试试这个..
extend
当 true 值作为第一个参数传递时执行深度复制,因此您可以这样做
var copyArray = $.extend(true, [], myArray);
有关详细信息,请参阅有关此内容的文档。
这解决了您的问题。
您可以使用 $.extend 通过传递 true 作为第一个参数来执行深层复制:
var copyArray = $.extend(true, [], myArray);
http://jsfiddle.net/GFVUy/12/
使用 jQuery $.extend 或纯 JavaScript
/*
* Extend Array extra json
* Example:
* $.extendArray([{a:1,b:2}],[{c:3,d:4}]) return -> [{a:1,b:2},{c:3,d:4}]
* $.extendArray([{a:1,b:2}],{c:3,d:4}) return -> [{a:1,b:2},{c:3,d:4}]
*
*/
$.extend({
extendArray: function() {
return Array.prototype.concat.apply([], arguments);
}
});
纯脚本
function extendArray() {
return Array.prototype.concat.apply([], arguments);
}
<</div>
div class="answers">试试这个
var copyArray = $.extend(true, [], myArray);
$.extend(copyArray[0], { "Hello": "World" });
查看演示
相关文章:
- 根据id将json数组组合为一个json数组
- 处理一个JSON文件;完全相同的副本不是
- 使用来自不同异步函数的响应创建一个json对象
- 想要使用Javascript将一个JSON对象拆分为多个JSON对象
- JSON:在另一个JSON对象中重用JSON对象
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- 创建一个 json cookie 数组
- NodeJS应用程序只显示第一个JSON对象.为什么?
- 从另一个JSON对象创建JSON对象
- 用javascript附加一个json文件
- 如何将两个json对象合并为一个json
- 将json作为子文档合并到另一个json中
- 其中一个json.dumps值为null
- ExtJS DataView只显示最后一个JSON元素
- 如何在javascript中为每个JSON对象添加一个JSON数组
- 从URL获取一个JSON文件并显示
- 我有一个json文件,当我点击按钮时
- 使用 javascript 为 c3js 创建一个 json 对象
- 从 javascript 打开一个 JSON 文件