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"]在一个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 })