[关闭]
@salen 2017-12-06T10:01:30.000000Z 字数 1209 阅读 423

常用数据处理方法

未分类


数组

合计

  1. // 单条
  2. let arr = [1, 2, 3, 4, 5, 6]
  3. arr.reduce((val1, val2) => {
  4. return val1 + val2
  5. }, 0) // => 21
  6. // 多条
  7. let arr = [{piece: 1, weight: 1}, {piece: 2, weight: 2}, {piece: 3, weight: 3}]
  8. arr.reduce((obj1, obj2) => {
  9. return {
  10. piece: obj1.piece + obj2.piece,
  11. weight: obj1.weight + obj2.weight,
  12. }
  13. }, {piece: 0, weight: 0})
  14. // => {piece: 6, weight: 6}
  15. // 变形
  16. let arr = [{start: 1, end: 2}, {start: 1, end: 3}, {start: 1, end: 4}]
  17. let newArr = arr.map(item => {
  18. return {
  19. ...item,
  20. res: item.end - item.start
  21. }
  22. })
  23. newArr.reduce((obj1, obj2) => {
  24. return {
  25. res: obj1.res + obj2.res
  26. }
  27. }, {res: 0})

反转

  1. let arr = [[1, 2, 3, 4, 5], ['a', 'b', 'c', 'd', 'e']]
  2. arr[0].map((item, index) => {
  3. return arr.map(arrItem => arrItem[index])
  4. })
  5. // => [[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd'], [5, 'e']]

筛选

  1. let arr1 = [1, 6, 9, 13]
  2. let arr2 = [{val: 1, name: 'a'}, {val: 4, name: 'b'}, {val: 9, name: 'c'}]
  3. arr2.filter(item => {
  4. return arr1.some(val => val === item.val)
  5. })
  6. // => [{val: 1, name: 'a'}, {val: 9, name: 'c'}]

对象

混入

  1. let obj1 = {a: 1, b: 2, c: 3,}
  2. let obj2 = {...obj1, d: 4,} // => {a: 1, b: 2, c: 3, d: 4,}

转数组

  1. let obj1 = {a: 1, b: 2, c: 3,}
  2. Object.entries(obj1) // => [['a', 1],['b', 2],['c', 3]]

数组转对象

  1. let obj = {}
  2. let arr = [['a', 1], ['b', 2], ['c', 3]]
  3. arr.forEach(item => {
  4. obj = {...obj, [item[0]]: item[1]}
  5. })
  6. // => {a: 1, b: 2, c: 3,}

处理编辑后返回全部数据问题

  1. let editObjArr = Object.entries(editObj)
  2. let nativeObjArr = Object.entries(nativeObj)
  3. let editParamsArr = Object.entries(nativeObj)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注