最近项目中遇到这么一个需求,须要将数组中的多个数组根据字段排序,而后到页面中渲染。数组
初始数组是这样的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