0.根据某一字段处理数据为一个集合

  1. // 源数据
  2. const beforeData = [
  3. { name: "tony", id: "1", age: "20" },
  4. { name: "jack", id: "2", age: "21" },
  5. { name: "tony", id: "3", age: "50" },
  6. { name: "jack", id: "4", age: "10" },
  7. { name: "mark", id: "5", age: "22" },
  8. { name: "mark", id: "6", age: "40" }
  9. ]
  10. // 期望数据
  11. const data = [
  12. {
  13. name: 'jack',
  14. data: [
  15. { name: "jack", id: "2", age: "21" },
  16. { name: "jack", id: "4", age: "10" },
  17. ]
  18. },
  19. {
  20. name: 'tony',
  21. data: [
  22. { name: "tony", id: "1", age: "20" },
  23. { name: "tony", id: "3", age: "50" },
  24. ]
  25. },
  26. {
  27. name: 'mark',
  28. data: [
  29. { name: "mark", id: "5", age: "22" },
  30. { name: "mark", id: "6", age: "40" }
  31. ]
  32. }
  33. ]
  34. // 处理操作
  35. const afterData = [];
  36. let tempArr = [];
  37. for(let i = 0; i < beforeData.length; i++){
  38. if(tempArr.indexOf(beforeData[i].name) === -1){
  39. afterData.push({
  40. name: beforeData[i].name,
  41. data: [beforeData[i]]
  42. });
  43. tempArr.push(beforeData[i].name)
  44. }else {
  45. for(let j = 0; j < afterData.length; j++){
  46. if(afterData[j].name === beforeData[i].name){
  47. afterData[j].data.push(beforeData[i]);
  48. break;
  49. }
  50. }
  51. }
  52. }
  53. console.log(afterData, "afterData")

1.根据某一字段排序(升序)

  1. // return -1 A 在 B 后
  2. // return 1 A 在 B 前
  3. // return 0 位置不变
  4. beforeData.sort((firstItem,secondItem) => {
  5. const nameA = firstItem.c_pihao.toUpperCase()
  6. const nameB = secondItem.c_pihao.toUpperCase()
  7. if(nameA < nameB) return -1
  8. if(nameA > nameB) return 1
  9. return 0
  10. })