cutHeader.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //处理头部函数
  2. export default function cutHeader(arr) {
  3. let first = {}
  4. //一级循环出来一级标签
  5. arr.map(item => {
  6. if (!!first[item.FirstTag] && first[item.FirstTag].length) {} else {
  7. first[item.FirstTag] = []
  8. }
  9. first[item.FirstTag].push(item)
  10. })
  11. // 循环出第二级标签
  12. let sound = []
  13. for (let key in first) {
  14. let obj = {
  15. FirstTag: key,
  16. details: {}
  17. }
  18. first[key].map(item => {
  19. if (!!obj.details[item.SecondTag] && obj.details[item.SecondTag].length) {
  20. } else {
  21. obj.details[item.SecondTag] = []
  22. }
  23. obj.details[item.SecondTag].push(item)
  24. })
  25. sound.push(obj)
  26. }
  27. // 循环出制定的数据结构
  28. let newArr = sound.map(item => {
  29. let copyarr = Object.assign(item.details, {})
  30. for (let k in item.details) {
  31. if (item.details instanceof Array) {} else {
  32. item.details = []
  33. }
  34. item.details.push({
  35. SecondTag: k,
  36. details: copyarr[k]
  37. })
  38. }
  39. return item
  40. })
  41. return newArr
  42. }