经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
JS数据分析数据去重及参数序列化示例
来源:jb51  时间:2022/8/16 17:27:30  对本文有异议

列表去重

使用 Set 数据结构

  1. const set = new Set([2, 8, 3, 8, 5])

注:Set 数据结构认为对象永不相等,即使是两个空对象,在 Set 结构内部也是不等的

方法封装

  1. const uniqueness = (data, key) => {
  2. const hash = new Map()
  3. return data.filter(item => !hash.has(item[key]) && hash.set(item[key], 1))
  4. }

对象转为查询字符串

代码注释

  1. /**
  2. * @description: 对象转为查询字符串
  3. * @params {Object} data: 源数据
  4. * @return {String} 目标数据
  5. * @example
  6. *
  7. * serialize({ a: 1, b: 2 })
  8. *
  9. * a=1&b=2
  10. */

方法封装

  1. export const serialize = data => {
  2. return Object.keys(data).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`).join('&')
  3. }

获取查询参数

代码注释

  1. /**
  2. * @description: 获取查询参数
  3. * @params {String} name: 查询参数名称
  4. * @return {String} 目标数据
  5. * @example
  6. *
  7. * getQueryString('id')
  8. */

方法封装

  1. export const getQueryString = key => {
  2. return (new URLSearchParams(location.search)).get(key)
  3. }

扩展封装

  1. class Route {
  2. static url = new URL(location)
  3. static attr(attribute) {
  4. return this.url[attribute]
  5. }
  6. static getParams() {
  7. const { searchParams } = this.url, params = {}
  8. for (const [key, value] of searchParams.entries()) {
  9. params[key] = value
  10. }
  11. return params
  12. }
  13. static getParam(name) {
  14. const { searchParams } = this.url
  15. return searchParams.get(name)
  16. }
  17. static hasParam(name) {
  18. const { searchParams } = this.url
  19. return searchParams.has(name)
  20. }
  21. }

以上就是JS数据分析数据去重及参数序列化示例的详细内容,更多关于JS数据去重参数序列化的资料请关注w3xue其它相关文章!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号