0.根据某一字段处理数据为一个集合
// 源数据const 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" }]// 期望数据 const data = [ { name: 'jack', data: [ { name: "jack", id: "2", age: "21" }, { name: "jack", id: "4", age: "10" }, ] }, { name: 'tony', data: [ { name: "tony", id: "1", age: "20" }, { name: "tony", id: "3", age: "50" }, ] }, { name: 'mark', data: [ { name: "mark", id: "5", age: "22" }, { name: "mark", id: "6", age: "40" } ] } ] // 处理操作const afterData = [];let tempArr = [];for(let i = 0; i < beforeData.length; i++){ if(tempArr.indexOf(beforeData[i].name) === -1){ afterData.push({ name: beforeData[i].name, data: [beforeData[i]] }); tempArr.push(beforeData[i].name) }else { for(let j = 0; j < afterData.length; j++){ if(afterData[j].name === beforeData[i].name){ afterData[j].data.push(beforeData[i]); break; } } }}console.log(afterData, "afterData")
1.根据某一字段排序(升序)
// return -1 A 在 B 后// return 1 A 在 B 前// return 0 位置不变beforeData.sort((firstItem,secondItem) => { const nameA = firstItem.c_pihao.toUpperCase() const nameB = secondItem.c_pihao.toUpperCase() if(nameA < nameB) return -1 if(nameA > nameB) return 1 return 0})