数据源是这样的
beforeData: [ { name: "tony", id: "1", age: "20" }, { name: "jack", id: "2", age: "21" }, { name: "tony", id: "3", age: "50" }, { name: "jack", id: "4", age: "10" }, { name: "mark", id: "5", age: "22" }, { name: "mark", id: "6", age: "40" } ]要将数据中name相同的项合并成一个对象
afterData: [ {name: "tony",origin: [{ name: "tony", id: "1", age: "20" },{ name: "tony", id: "3", age: "50" }]}, {name: "jack",origin: [{ name: "jack", id: "2", age: "21" },{ name: "jack", id: "4", age: "10" }]}, {name: "mark",origin: [{ name: "mark", id: "5", age: "22" },{ name: "mark", id: "6", age: "40" }]} ]实现:
let tempArr = []; for (let i = 0; i < this.beforeData.length; i++) { if (tempArr.indexOf(this.beforeData[i].name) === -1) { this.afterData.push({ name: this.beforeData[i].name, origin: [this.beforeData[i]] }); tempArr.push(this.beforeData[i].name); } else { for (let j = 0; j < this.afterData.length; j++) { if (this.afterData[j].name == this.beforeData[i].name) { this.afterData[j].origin.push(this.beforeData[i]); break; } } } }如下代码,根据数组对象中的age进行排序
方式一:
var arr = [ {name:'zopp',age:0}, {name:'gpp',age:18}, {name:'yjj',age:8} ]; function compare(property){ return function(a,b){ var value1 = a[property]; var value2 = b[property]; return value1 - value2; } } console.log(arr.sort(compare('age')))方式二:
students:[ {name:'baibai',age:32}, {name:'xiaobai',age:30}, {name:'gufan',age:21}, {name:'King',age:45} ] //数组对象方法排序: function sortByKey(array, key) { return array.sort(function(a, b) { var x = a[key]; var y = b[key]; return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }) } //将相应的数组对象传入即可完成排序: sortByKey(students,age);如下代码,将数组中的值进行大小排序
let values = [1,2,3,6,4,8]; //小到大排序,如果需要由大到小,把返回的-1和1反过来就可以了 let compare = (x,y) => { if(x < y){ return -1 }else if(x > y){ return 1; }else{ return 0; } } console.log(values.sort(compare)); //[1, 2, 3, 4, 6, 8]现在有一个这样规律的数组,需求是把里面相同元素组合成一个新的数组;
arr=['1','1','1','2',,'3','4','5','5','6','6','7','8','9','9','10']结果是这样的
newArr = [ [ "1" , "1" , "1" ] , [ "2" ] , [] , [ "3" ] , [ "4" ] , [ "5" , "5" ] , [ "6" , "6" ] , [ "7" ] , [ "8" ] , [ "9" , "9" ] , [ "10" ] ]实现方式:
var arr=['1','1','1','2',,'3','4','5','5','6','6','7', '8','9','9','10']; var newArr = [], tempArr = []; for(var i=0,j=arr.length;i<j;i++){ if(arr[i] == arr[i+1]){ tempArr.push(arr[i]); } else { tempArr.push(arr[i]); newArr.push(tempArr.slice(0)); tempArr.length = 0; } } console.log(newArr); /*[ [ "1" , "1" , "1" ] , [ "2" ] , [] , [ "3" ] , [ "4" ] ,[ "5" , "5" ] , [ "6" , "6" ] , [ "7" ] , [ "8" ] , [ "9" , "9" ] , [ "10" ] ]*/