使用concat和sort来针对性处理数组内嵌套多数组,并根据条件来进行排序

最近项目中遇到这么一个需求,须要将数组中的多个数组根据字段排序,而后到页面中渲染。数组

初始数组是这样的spa

var arr = [ { arr1: [ { name: '我是商品6', sort: 6 }, { name: '我是商品3', sort: 3 } ], arr2: [ { name: '我是商品5', sort: 2 }, { name: '我是商品1', sort: 1 } ] }, { arr1: [ { name: '我是商品5', sort: 5 } ], arr2: [ { name: '我是商品4', sort: 4 } ] } ]

这里须要根据sort字段来进行排序,从1到6code

需求:blog

  1.将这个源数组重组成一个数组排序

var o = [] arr.forEach((item,index) => { o = o.concat(item.arr1,item.arr2) o.sort(function (a, b) { return a.sort - b.sort }) })

  输出结果为:it

  

 

   2.在arr数组每条数据中生成一个新数组io

arr.forEach((item,index) => { item.arr3 = [].concat(item.arr1,item.arr2) item.arr3.sort(function (a, b) { return a.sort - b.sort }) })

  输出结果为:function

 

 

这里有个值得注意的地方,concat能够将多个数组进行组合,可是不会对以前的数组进行改变,它会返回一个新数组class

相关文章
相关标签/搜索