json数组排序,深拷贝,浅拷贝,删除,增加,筛选,
json数组排序,深拷贝,浅拷贝,删除,增加
一 根据json里面的某个数值排序,倒叙或者顺序
sort会改变原数组,因为这个差点和后端打起来了!!!
后来发现,是sort惹的祸,
至于我是怎么踩得坑,就不写了,
下面是真确的方法,记住就好了;
需求;
一 添加新的用户时,接口返回数据,会将它添加在数组的第一个;
二 前端显示数组,要按照年龄的大小显示
注:至于为什么不让后端排序好,因为我需要当前数组第一个数据
一般后台给的数据是这样的
var res.info=[{naem:'莫西子诗',ages:38},{naem:'百里登风',ages:32},{naem:'刺客伍六一',ages:27}] //var arr = res.info; // 浅拷贝var arr = [...res.info]; // 深拷贝arr.sort((a, b) => {return b.bargain_price - a.bargain_price})console.log(res.info)console.log(arr)
浅拷贝和深拷贝的区别是,一个改变原数组,一个不改变;
** 1.浅拷贝是指, 修改B对象的属性和方法会影响到A对象的属性和方法, 我们称之为浅拷贝 **
var arr = res.info;
// 这样写的话,不管你将arr数组处理成啥样的,打印 arr 和 res,info 是一样的即 console.log(res.info) 和 *console.log(arr)* 是一样的,// 本质上是res.info和arr都指向了同一块存储空间// 所以无论是修改res.info还是arr都会影响到另外一个
** 深拷贝是指, 修改B对象的属性和方法不会影响到A对象的属性和方法, 我们称之为深拷贝 **
var arr = [...res.info];
这样 console.log(res.info) 和 *console.log(arr)*
在接下来你修改他们其中一个,另一个的数据都不会跟着发生改变
从富文本 里面获取所有图片地址的方法
原来是这样的
// res.data.info.description
<p><p><p><img src="https://wxiong.cn/cofc.png"/></p><p><img src="https://wxixiong.cn/6aba1b.png"/></p></p></p>
处理方法
var str = res.data.info.description;var imUrl = str.match(/src="([^"]*)/g).map(s => s.substring(5));console.log(imgUrl)
打印出来是这样的
["https://wxiong.cn/cofc.png", "https://wxixiong.cn/6aba1b.png"]
筛选出你想要的的字段 filter()
在一个json数组里面筛选type是banner的相应数组
let dataInfo = res.data.info.all_data;let banner = dataInfo.filter((e) => {if(e.type == 'banner'){return e }}) that.setData({banner:banner[0].list,advert:advert})
删除一些字段
let dataInfo = res.data.info.all_data;let banner = dataInfo.filter((e) => {if(e.type != 'banner'){return e }}) // 删除type:banner的数组that.setData({banner:banner[0].list,advert:advert})
json数组排序,深拷贝,浅拷贝,删除,增加,筛选,相关推荐
- 原型模式与深拷贝浅拷贝
原型模式与深拷贝浅拷贝 原型模式 Java中的原型模式 简单的例子 浅拷贝 深拷贝 效率比较 JMH测试样例 测试结果 原型模式 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或 ...
- JavaScript 操作JSON对象查找、删除、修改
近日根据公司需求用js对json的各种处理,完成后整理如下(全递归处理方法,如有更好的见解希望告知): 对JSON的查找 /*** * 获取JSON对应叶子节点的数据*/function getJSO ...
- java深拷贝和浅拷贝_Java 深拷贝浅拷贝 与 序列化
一.浅拷贝.深拷贝 浅拷贝会对对象中的成员变量进行拷贝:如果是基本类型,拷贝的就是基本类型的值:如果属性是内存地址(引用类型),拷贝的就是内存地址 : 深拷贝,除了基本类型外,引用类型所引用的对象也会 ...
- Java基础 深拷贝浅拷贝
Java基础 深拷贝浅拷贝 非基本数据类型 需要new新空间 class Student implements Cloneable{private int id;private String name ...
- sed 删除/增加文件的某一行
sed 删除/增加文件的某一行: sed -i '6d' file.txt, 删除的是第6行的内容 1.删除文档的第一行 sed -i '1d' file.txt 2.删除文档的最后一行 sed -i ...
- PyQt5在QGridLayout布局下动态删除增加控件
PyQt5 QGridLayout removeWidget PyQt5 动态删除增加控件 注意 删除控件removeWidget() 之后需要 sip.delete() 截取部分代码示例如下: im ...
- php对‘[{“id“:“1“,“name“:“cyg”},{“id“:“2“,“name“:“liwen“}]json数据进行修改删除操作
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 前言 代码 删除效果 修改效果 前言 对json数据进行修改删除操作,数组里面有两个json 代码 ...
- 面试题-关于深拷贝浅拷贝
关于赋值 赋值,即直接将变量相等,=,此时对于这两个变量来讲,指向了同个内存地址,所以,内存地址指向的内容一旦改变就会同步改变 关于 js 变量类型 基本数据类型: Number, Boolean, ...
- Map的putAll方法踩坑实记(对象深拷贝浅拷贝)
文章目录 问题描述 编写测试代码模拟问题场景 场景1:Map中不包含对象 场景2:Map中包含对象 什么是对象的浅拷贝深拷贝 如何实现深拷贝 问题描述 在一个产品管理系统中,产品信息需要封装一份同步业 ...
- mysql json invalid json text_MySQL 5.7新增加的json数据类型
MySQL 5.7中有json存储类型了以前我们只能通过php来进行序列化了不过现在就不需要了我们可以直接使用MySQL 5.7的json数据类型来存储json格式数据了,具体来看介绍. 在MySQL ...
最新文章
- Mac怎么刷新DNS缓存
- Java线性池的使用方式以及核心运行原理
- Maven在Eclipse中的实用小技巧
- [1] SDK Tools安装
- POJ 2847 Widget Factory
- VSFLEXgrid控件几个特殊的属性方法的使用
- java连接数据库驱动代码综合共享
- python龙卷风框架_WEB框架之Tornado
- top 内存耗用:VSS/RSS/PSS/USS
- 【ESP32】HardwareSerial库使用
- 服务器搬迁需要注意的几个地方
- 笔记 | 人工智能导论 语义网络表示
- qt界面之-statusBar的使用方式
- 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统
- 操作系统:图文详解神秘的”内存映射“
- html5红外遥控,做了个小的红外遥控装置
- day3字符串操作作业详解
- php 传递指针,windtear 追求完美
- 记事本如何写代码并运行代码
- PB安装包,PB安装程序,PB开发工具,powerbuilder安装包,powerbuilder安装程序,powerbuilder开发工具下载地址