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 });
这个用起来也比较方便
相关推荐
-
原生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 数组的深度复制解析
对于javascript而言,数组是引用类型,如果要想复制一个数组就要动脑袋想想了,因为包括concat.slice在内的函数,都是浅层复制.也就是说,对于一个二维数组来说,用concat来做复制,第二维的数组还是引用,修改了新数组同样会使旧数组发生改变. 于是乎,想要写一个深度复制的函数,来帮助做组数的深度复制. 一般情况下,使用 "=" 可以实现赋值.但对于数组.对象.函数等这些引用类型的数据,这个符号就不好使了. 1. 数组的简单复制 1.1 简单遍历 最简单也最基础的方式,自然
-
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数组和对象的复制
一.数据类型 从狭义上来说,JS把所有的数据分成两大类型:基本类型和引用类型,其中基本类型包括Undefined.Null.Boolean.Number和String,引用类型为Object,常用的Array.Date.RegExp.Function等都属于Object类型. 基本型数据和引用型数据的区别之一就是,在复制变量时,基本型数据复制独立的一份新的拷贝,而引用型数据复制的是原变量的引用.下面是一个例子: // 基本类型数据的复制 var a = 10; var b = a; // b =
-
js中如何复制一个对象并获取其所有属性和属性对应的值
在js中如何复制一个对象,例如如下一个js对象. 如果知道这个对象的所有属性自然就可以重新new一个,然后对每个属性赋值,就可以做到,但如果不知道呢?如何创建一个内容相同 的对象呢? 复制代码 代码如下: var obj={ colkey: "col", colsinfo: "NameList" } 最简单就是使用for in, 例如obj2就拥有了和obj完全相同的属性 复制代码 代码如下: var obj2=new Object(); for(var p in
-
深入理解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
-
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复制对象使用说明
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 复制数组实现代码
一. 错误实现 不少人可能直接就用等号进行赋值了: 复制代码 代码如下: var array1 = new Array("1","2","3"); var array2; array2 = array1; array1.length = 0; alert(array2); //返回为空 这种做法是错的,因为javascript分原始类型与引用类型(与java.c#类似).Array是引用类 型.array2得到的是引用,所以对array1的修改会
-
改进版通过Json对象实现深复制的方法
之前看到博客的关于Json对象的深复制方法,即 复制代码 代码如下: var obj = { sayName: function() { alert(this.name); }, name:'静水渊' };var cloneObj=JSON.parse(JSON.stringify(obj));cloneObj.sayName(); 但这种方式,不能复制属性值是函数的属性,因此改进了方法,以下是具体代码: 复制代码 代码如下: var obj = { sayName: function() {
随机推荐
- C#编写Windows服务程序详细步骤详解(图文)
- js 小数取整的函数
- CMOS使用及维护须知
- Android 三种延迟操作的实现方法
- Python遍历文件夹和读写文件的实现代码
- 关于二级目录拖拽排序的实现(源码示例下载)
- Python的pycurl包用法简介
- jsp连接数据库大全
- c#实现输出本月的月历
- php实现简单的上传进度条
- js动态移动滚动条至底部示例代码
- 发个自己写的表格操作类(添加,删除,排序,上移,下移)
- 解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
- JavaScript判断浏览器及其版本信息
- Ruby和Shell脚本实现判断成绩及格功能
- JavaScript中的函数重载深入理解
- Java生成10个1000以内的随机数并用消息框显示数组内容然后求和输出
- 快速学习C语言中for循环语句的基本使用方法
- PHP正确配置mysql(apache环境)
- php实现数组纵向转横向并过滤重复值的方法分析