jQuery中json对象的复制方式介绍(数组及对象)
$.map(json, function (n) { return n; });
这种方式原来用于复制数组还可以,今天用它复制数组中的某一条记录,发现字段名称丢失了,后来发现了第二种方法。
2、深复制与浅复制
代码如下:
// 浅层复制(只复制顶层的非 object 元素)
var newObject = jQuery.extend({}, oldObject);
// 深层复制(一层一层往下复制直到最底层)
var newObject = jQuery.extend(true, {}, oldObject);
用的是深复制的方式,复制对象时发现字段丢失的现象没有了。
3、数组的过滤
找了一下javascript的数组的方法,没有过滤的方法,后来发现jQuery有提供,尝试了一下,居然很好用。
代码如下:
$.grep(jsonTmp, function (item)
{
return item.LegendTitle == field;
}, false);
function的内容根据实际的需要写就可以了,不行的话参考jQuery的帮助,那里说的很详细。
4、顺便说一下数组的排序
代码如下:
json2.sort(function (a, b) { return a["requiredColumn"]["crimeTime"] > b["requiredColumn"]["crimeTime"] ? 1 : -1 });
这个用起来也比较方便
相关推荐
-
改进版通过Json对象实现深复制的方法
之前看到博客的关于Json对象的深复制方法,即 复制代码 代码如下: var obj = { sayName: function() { alert(this.name); }, name:'静水渊' };var cloneObj=JSON.parse(JSON.stringify(obj));cloneObj.sayName(); 但这种方式,不能复制属性值是函数的属性,因此改进了方法,以下是具体代码: 复制代码 代码如下: var obj = { sayName: function() {
-
Javascript 复制数组实现代码
一. 错误实现 不少人可能直接就用等号进行赋值了: 复制代码 代码如下: var array1 = new Array("1","2","3"); var array2; array2 = array1; array1.length = 0; alert(array2); //返回为空 这种做法是错的,因为javascript分原始类型与引用类型(与java.c#类似).Array是引用类 型.array2得到的是引用,所以对array1的修改会
-
js中如何复制一个对象并获取其所有属性和属性对应的值
在js中如何复制一个对象,例如如下一个js对象. 如果知道这个对象的所有属性自然就可以重新new一个,然后对每个属性赋值,就可以做到,但如果不知道呢?如何创建一个内容相同 的对象呢? 复制代码 代码如下: var obj={ colkey: "col", colsinfo: "NameList" } 最简单就是使用for in, 例如obj2就拥有了和obj完全相同的属性 复制代码 代码如下: var obj2=new Object(); for(var p in
-
JavaScript数组和对象的复制
一.数据类型 从狭义上来说,JS把所有的数据分成两大类型:基本类型和引用类型,其中基本类型包括Undefined.Null.Boolean.Number和String,引用类型为Object,常用的Array.Date.RegExp.Function等都属于Object类型. 基本型数据和引用型数据的区别之一就是,在复制变量时,基本型数据复制独立的一份新的拷贝,而引用型数据复制的是原变量的引用.下面是一个例子: // 基本类型数据的复制 var a = 10; var b = a; // b =
-
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
jq的extend()方法能很方便的实现扩展对象方法,语法如下:$.extend(obj1,boj2,obj3); 现在要实现的是:原生js实现复制对象,扩展对象,类似jq中的extend()方法,具体实例如下: 现有3个对象字面量: var o1={hello:1,old:555}, o2 = { abc: 55555555, hello: 2, fun: function() { alert(111); } }, o3={third:9999}; 实现目标: 复制o1对象,把 o2,o3的对
-
javascript 三种数组复制方法的性能对比
一. 三种数组复制方法 1. by slice var arr = [1, 2, 3], copyArr; copyArr = arr.slice(); 2. by concat var arr = [1, 2, 3], copyArr; copyArr = arr.concat(); 3. by loop var arr = [1, 2, 3], copyArr = []; for (var i=0, j=arr.length; i 二. 测试环境 浏览器: IE6+, FF 3.5.5, O
-
javascript复制对象使用说明
oldObj是一个对象,而不是值 例如var newObj=oldObj; 如果想oldObj改变的时候不影响到newObj: 可以这样写一个函数 复制代码 代码如下: function clone(myObj){ if(typeof(myObj) != 'object') return myObj; if(myObj == null) return myObj; var myNewObj = new Object(); for(var i in myObj) myNewObj[i] = clo
-
JavaScript 数组的深度复制解析
对于javascript而言,数组是引用类型,如果要想复制一个数组就要动脑袋想想了,因为包括concat.slice在内的函数,都是浅层复制.也就是说,对于一个二维数组来说,用concat来做复制,第二维的数组还是引用,修改了新数组同样会使旧数组发生改变. 于是乎,想要写一个深度复制的函数,来帮助做组数的深度复制. 一般情况下,使用 "=" 可以实现赋值.但对于数组.对象.函数等这些引用类型的数据,这个符号就不好使了. 1. 数组的简单复制 1.1 简单遍历 最简单也最基础的方式,自然
-
JavaScript数组复制详解
前面的话 前面的博文中介绍了对象拷贝,本文将详细介绍数组复制 push function copyArray(arr){ var result = []; for(var i = 0; i < arr.length; i++){ result.push(arr[i]); } return result; } var obj1=[1,2,3]; var obj2=copyArray(obj1); console.log(obj1); //[1,2,3] console.log(obj2); /
-
深入理解JavaScript中的对象复制(Object Clone)
JavaScript中并没有直接提供对象复制(Object Clone)的方法.因此下面的代码中改变对象b的时候,也就改变了对象a. a = {k1:1, k2:2, k3:3}; b = a; b.k2 = 4; 如果只想改变b而保持a不变,就需要对对象a进行复制. 用jQuery进行对象复制 在可以使用jQuery的情况下,jQuery自带的extend方法可以用来实现对象的复制. a = {k1:1, k2:2, k3:3}; b = {}; $.extend(b,a); 自定义clone
随机推荐
- Powershell小技巧之判断是否包涵大小写
- iOS创建对象的不同姿势详解
- IOS 获取已连接的wifi信息的实现代码
- 详解在Spring Boot中使用Mysql和JPA
- 兼容IE,firefox的获取节点的文本值的javascript代码
- windows server2014 安装 Mysql Applying Security出错的完美解决方法
- PHP函数http_build_query使用详解
- python修改字典内key对应值的方法
- JavaScript获取页面中第一个锚定文本的方法
- 35句细节 35句句句都点出了隐藏的信息
- 为Python的Tornado框架配置使用Jinja2模板引擎的方法
- jQuery 第二课 操作包装集元素代码
- JS与jQuery遍历Table所有单元格内容的方法
- 检查表单元素的值是否为空的实例代码
- android通过蓝牙接收文件打开时无法自动选择合适的应用程序
- Java自学书籍推荐 程序员到架构师必看的书
- PHP中上传大体积文件时需要的设置
- Android实现可使用自定义透明Dialog样式的Activity完整实例
- numpy找出array中的最大值,最小值实例
- JS实现获取当前所在周的周六、周日示例分析