项目作者: z41z

项目描述 :
Common Data Trans methods for Date, Array, Object, Array of Objects etc.
高级语言: JavaScript
项目地址: git://github.com/z41z/sp-data.git
创建时间: 2018-08-09T09:09:16Z
项目社区:https://github.com/z41z/sp-data

开源协议:MIT License

下载


sp-data

Common Data Trans methods for Date, Array, Object, Array of Objects etc.


Install

NPM

  1. npm install --save sp-data
  2. // or yarn add sp-data

CDN

  1. <script src="https://unpkg.com/sp-data/index.min.js"></script>
  2. <script>
  3. __DATA.array.create(5, 0);
  4. //=> [0, 0, 0, 0, 0]
  5. </script>

Usage

  1. //sp: {date, array, object, parse, entity, string}
  2. const sp = require('sp-data');
  3. sp.date.format('yyyy-MM-dd', new Date());
  4. //=> 2018-08-06
  5. sp.array.sort(arr = [1, 2, 3, 4, 1], isASC = true)
  6. //=>[1, 1, 2, 3, 4]
  7. sp.array.sort(arr = [1, 2, 3, 4, 1], isASC = false)
  8. //=>[4, 3, 2, 1, 1]

Date

  1. //date: format(), goto(), prevDay(), prevMonth(), prevYear(), nextDay(), nextMonth(), nextYear(), calc()
  2. const date = require('sp-data/date');
  3. date.format('yyyy-MM-dd', new Date());
  4. //=> 2018-08-06
  5. date.goto(year, month, day);
  6. //=> return Date
  7. date.prevDay(dayCount = 0, startDate = new Date());
  8. //=> return Date
  9. date.prevMonth(monthCount = 0, date = new Date());
  10. //=> return Date
  11. date.prevYear(yearCount = 0, date = new Date());
  12. //=> return Date
  13. date.nextDay(dayCount = 0, startDate = new Date());
  14. //=> return Date
  15. date.nextMonth(monthCount = 0, date = new Date());
  16. //=> return Date
  17. date.nextYear(yearCount = 0, date = new Date());
  18. //=> return Date
  19. date.calc(startDate = new Date(2018, 01, 01), endDate = new Date());
  20. //=> { seconds: 20, minutes: 44, hours: 15, days: 188 }
  21. date.calc(startDate = new Date(2018, 01, 01), endDate = new Date(2000, 01, 01));
  22. //=> { seconds: 0, minutes: 0, hours: 0, days: 6575 }

Array && Array of Objects

  1. //arr: create(), sort(), sortObj(), unique(), uniqueObj(), filter(), sum(), createByArrObj(), mergeObj()
  2. const arr = require('sp-data/array');
  3. arr.create((length = 5, fillVal = 'a'))
  4. //=>['a', 'a', 'a', 'a', 'a']
  5. arr.sort(arr = [1, 2, 3, 4, 1], isASC = true)
  6. //=>[1, 1, 2, 3, 4]
  7. arr.sort(arr = [1, 2, 3, 4, 1], isASC = false)
  8. //=>[4, 3, 2, 1, 1]
  9. arr.sortObj(arr = [{name: 'Alice', age: 12},{name: 'Bob', age: 14}, {name: 'John', age: 11}], keyName = 'age', isASC = true)
  10. //=>[{name: 'John', age: 11}, {name: 'Alice', age: 12},{name: 'Bob', age: 14}]
  11. arr.sortObj(arr = [{name: 'Alice', age: 12},{name: 'Bob', age: 14}, {name: 'John', age: 11}], keyName = 'age', isASC = false)
  12. //=>[{name: 'Bob', age: 14}, {name: 'Alice', age: 12}, {name: 'John', age: 11}]
  13. arr.unique(arr = [1, 2, 3, 4, 1])
  14. //=>[1, 2, 3, 4]
  15. //unique by all key
  16. arr.uniqueObj(arr = [{a: 1, b: 2}, {a: 2, b: 3}, {a: 1}, {a: 1}])
  17. //=>[{a: 1, b: 2}, {a: 2, b: 3}, {a: 1}]
  18. //unique by key name
  19. arr.uniqueObj(arr = [{a: 1, b: 2}, {a: 2, b: 3}, {a: 1}], keyName = 'a')
  20. //=>[{a: 1, b: 2}, {a: 2, b: 3}]
  21. arr.filter(arr = [1, 3, 4, 5], function(item) {return item > 3;})
  22. //=>[4, 5]
  23. arr.filter(arr = [{name: 'Alice', age: 12},{name: 'Bob', age: 14}, {name: 'John', age: 11}], function(item) {return item.age > 12;})
  24. //=>[{name: 'Bob', age: 14}]
  25. arr.sum(arr = [1, 2, 3])
  26. //=>6
  27. //item is NOT number string return 0
  28. arr.sum(arr = [1, 2, 3, 'a', 'b'])
  29. //=>6
  30. //sum by index => value
  31. arr.sum(arr = [[1, 2, 3], [4, 5, 6], [7, 8], [9]], idDeep = true)
  32. //[1 + 4 + 7 + 9, 2 + 5 + 8, 9]
  33. //=>[ 21, 15, 9]
  34. //sum by key => value
  35. arr.sum(arr = [{a: 1, b: 2, c: 3}, {a: 4, b: 5}, {c: 6}, {d: 7}], idDeep = true)
  36. //[{a: 1 + 4, b: 2 + 5, c: 3 + 6, d: 7}]
  37. //=>[ { a: 5, b: 7, c: 9, d: 7 } ]
  38. arr.createByArrObj(arrObj = [ { a: 3, b: 7}, {a: 0, b: 3}, {a: 2, b: 4} ], indexName = 'a', valueName = 'b')
  39. //=>[ 3, 0, 4 ]
  40. arr.createByArrObj(arrObj = [ { a: 3, b: 7},{a: 0, b: 3}, {a: 2, b: 4} ], indexName = 'a', valueName = 'b', length = 6)
  41. //=>[ 3, 0, 4, 7, 0, 0 ]
  42. arr.createByArrObj(arrObj = [ { a: 3, b: 7}, {a: 0, b: 3}, {a: 2, b: 4} ], indexName = 'a', valueName = 'b', length = 6, defaultValue = 666)
  43. //=>[ 3, 666, 4, 7, 666, 666 ]
  44. let src = [{city:'city1',total:0},{city:'city2',total:0}]
  45. let dest = [{city:'city1',total:10},{city:'city2',total:0}]
  46. arr.mergeObj(src,mergeName = 'city', dest)
  47. //=> [{city:'city1',total:10},{city:'city2',total:0}]

Object

  1. //obj: reverse(), rename()
  2. const obj = require('sp-data/object');
  3. obj.reverse(obj = {a: 1, b: 2})
  4. //=> {1: a, 2: b}
  5. obj.reverse(obj = {a: 1, b: 2}, keyName = 'a')
  6. //=> {1: a, b: 2}
  7. obj.reverse(obj = [{a: 1, b: 2}, {a: 2, b: 3, d: 5}])
  8. //=> [ { '1': 'a', '2': 'b' }, { '2': 'a', '3': 'b', '5': 'd' } ]
  9. //last value will be the last key
  10. obj.reverse(obj = [{a: 1, b: 2}, {a: 2, b: 3, c: 5, d: 5, e: 5}])
  11. //=>[ { '1': 'a', '2': 'b' }, { '2': 'a', '3': 'b', '5': 'e' } ]
  12. obj.reverse(obj = [{a: 1, b: 2}, {a: 2, b: 3, d: 5}], keyName = 'a')
  13. //=> [ { '1': 'a', b: 2 }, { '2': 'a', b: 3, d: 5 } ]
  14. //Object {}
  15. obj.rename(obj = { a: 2, b: 3, c: 5, d: 5, e: 5 })
  16. //=>{ a: 2, b: 3, c: 5, d: 5, e: 5 }
  17. obj.rename(obj = { a: 2, b: 3, c: 5, d: 5, e: 5 }, target = 'a')
  18. //=>{b: 3, c: 5, d: 5, e: 5 }
  19. obj.rename(obj = { a: 2, b: 3, c: 5, d: 5, e: 5 }, target = 'a', replacer = 'x')
  20. //=>{x:2, b: 3, c: 5, d: 5, e: 5 }
  21. //Array of Objects
  22. obj.rename(obj = [{ a: 2, b: 3}, {a: 3, b: 5}])
  23. //=>[{ a: 2, b: 3}, {a: 3, b: 5}]
  24. obj.rename(obj = [{ a: 2, b: 3}, {a: 3, b: 5}], 'a')
  25. //=>[{b: 3}, {b: 5}
  26. obj.rename(obj = [{ a: 2, b: 3, c: 4}, {a: 3, b: 5}], 'c', 'x')
  27. //=>[{ a: 2, b: 3, x: 4}, {a: 3, b: 5}]

Parse

  1. //parse: number(), bollean()
  2. const parse = require('sp-data/parse');
  3. //undefined, [] ,{} ,NaN ,'' ,' ', null or not number string return 0
  4. parse.number(num = [], fixedLength = 0)
  5. //=> 0
  6. parse.number(num = {}, fixedLength = 2)
  7. //=> 0.00
  8. parse.number(num = 'a', fixedLength = 2)
  9. //=> 0.00
  10. parse.number(num = '2', fixedLength = 2)
  11. //=> 2.00
  12. parse.number(num = '2.000', fixedLength = 2)
  13. //=> 2.00
  14. //undefined, [] ,{} ,NaN ,'' ,' ', null return false
  15. parse.boolean(0)
  16. //=> false
  17. //undefined, [] ,{} ,NaN ,'' ,' ', null return false
  18. parse.boolean('a')
  19. //=> true

entity

  1. //entity: encode(str), decode(str)
  2. const entity = require('sp-data/entity');
  3. entity.encode('1')
  4. // 1
  5. entity.decode('123')
  6. // 123

string

  1. //entity: encode(str), decode(str)
  2. const string = require('sp-data/string')
  3. string.replace('你我他',{你:'ni',我:'wo'})
  4. // niwo他

License

MIT