JS数据分析数据去重及参数序列化示例

目录
  • 列表去重
  • 对象转为查询字符串
  • 获取查询参数

列表去重

使用 Set 数据结构

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

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

方法封装

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

对象转为查询字符串

代码注释

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

方法封装

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

获取查询参数

代码注释

/**
* @description: 获取查询参数
* @params {String} name: 查询参数名称
* @return {String} 目标数据
* @example
*
*   getQueryString('id')
*/

方法封装

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

扩展封装

class Route {
  static url = new URL(location)
  static attr(attribute) {
    return this.url[attribute]
  }
  static getParams() {
    const { searchParams } = this.url, params = {}
    for (const [key, value] of searchParams.entries()) {
      params[key] = value
    }
    return params
  }
  static getParam(name) {
    const { searchParams } = this.url
    return searchParams.get(name)
  }
  static hasParam(name) {
    const { searchParams } = this.url
    return searchParams.has(name)
  }
}

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

(0)

相关推荐

  • Javascript表单序列化原理及实现代码详解

    随着 Ajax 的出现,表单序列化已经成为一种常见需求.在 JavaScript 中,可 以利用表单字段的 type 属性,连同 name 和 value 属性一起实现对表单的序列化.在编写代码之前, 有必须先搞清楚在表单提交期间,浏览器是怎样将数据发送给服务器的. ​1. 对表单字段的名称和值进行 URL 编码,使用和号(&)分隔. 2. 不发送禁用的表单字段. 3. 只发送勾选的复选框和单选按钮. 4. 不发送 type 为"reset"和"button"

  • JS数组属性去重并校验重复数据

    这篇文章主要介绍了JS数组属性去重并校验重复数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 新任务: 下拉框出去重复数据 //前端对象数组 按某个属性去重 其中jsonArray 是你要去重的对象数组 示例中 按name属性去重 //前端对象数组 按某个属性去重 var obj = {}; jsonArray = jsonArray.reduce(function(item,next){ obj[next.name]?'':obj[next

  • JS数组返回去重后数据的方法解析

    话不多说,请看代码: function removeRepeat(data) { var temp = ""; var mainData = []; for (var i = 0; i < data.length; i++) { if (!data[i].parent) { temp = data[i]; for (var j = 0; j < data.length; j++) { if (temp.DeliveryType == data[j].DeliveryType

  • js序列化和反序列化的使用讲解

    (1)序列化 即js中的Object转化为字符串 1.使用obj.toJSONString() var str=obj.toJSONString(); //将JSON对象转化为JSON字符 2.使用JSON.stringify(obj) var str=JSON.stringify(obj); //将JSON对象转化为JSON字符 (2)反序列化 即js中JSON字符串转化为Object 1.使用eval('('+josnStr+')') var obj=eval("("+data+&

  • js脚本实现数据去重

    项目要求如图所示: 代码: 复制代码 代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <script src="jquery.js"></script>     <script type="text/javascript">     $(function(){      

  • JS数据分析数据去重及参数序列化示例

    目录 列表去重 对象转为查询字符串 获取查询参数 列表去重 使用 Set 数据结构 const set = new Set([2, 8, 3, 8, 5]) 注:Set 数据结构认为对象永不相等,即使是两个空对象,在 Set 结构内部也是不等的 方法封装 const uniqueness = (data, key) => { const hash = new Map() return data.filter(item => !hash.has(item[key]) && has

  • JS实现字符串去重及数组去重的方法示例

    本文实例讲述了JS实现字符串去重及数组去重的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net js数组.字符串去重</title> </head> <body> <script type="text/j

  • JS对象数组去重的3种方法示例及对比

    目录 一.去重前后数据对比 二.使用方法 1.使用filter和Map 2.使用reduce 3.使用for循环 三.2400条数据,三种方法处理时间对比 总结 一.去重前后数据对比 // 原数据是这样的 // 去重后数据是这样的 [{ [{ "goodsId": "1", "goodsId": "1", "quota": 12, "quota": 12, "skuId&quo

  • js中yield参数应用示例深入理解

    目录 yield是什么 yield应用的简单例子 demo1 错误的调用 demo2 一些说明 next()函数及参数 yield参数的对比 更深层次的理解yield 分析 A组 B组 目前项目中的可用性 yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器的调用者.它可以被认为是一个基于生成器的版本的return关键字. yield关键字实际返回一个IteratorResult(迭代器)对象,它有两个属性,value和done,分别

  • JS实现数组去重及数组内对象去重功能示例

    本文实例讲述了JS实现数组去重及数组内对象去重功能.分享给大家供大家参考,具体如下: 大家在写项目的时候一定遇到过这种逻辑需求,就是给一个数组进行去重处理,还有一种就是给数组内的对象根据某一个属性,比如id,进行去重,下面我写了两个函数,都是可以达到这个效果的,一个是纯ES5的去重办法,一个是用了ES6的 Array.from(new Set())和ES5的reduce来进行去重 我先定义两个数组吧 var arr = [1,2,3,5,3,4,5,6,6,"test","t

  • JS实现数组去重,显示重复元素及个数的方法示例

    本文实例讲述了JS实现数组去重,显示重复元素及个数的方法.分享给大家供大家参考,具体如下: <script> var arr = ['土豆','土豆','茄子','土豆','茄子','土豆','紫红色']; function qc(arr){ var resultObj = {}; var result = []; var result2 = []; for(var i=0; i<arr.length; i++){ if(result.indexOf(arr[i]) == -1){ re

  • python数据分析数据标准化及离散化详解

    本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下 标准化 1.离差标准化 是对原始数据的线性变换,使结果映射到[0,1]区间.方便数据的处理.消除单位影响及变异大小因素影响. 基本公式为: x'=(x-min)/(max-min) 代码: #!/user/bin/env python #-*- coding:utf-8 -*- #author:M10 import numpy as np import pandas as pd import matplo

  • MySQL中使用去重distinct方法的示例详解

    一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段 用法注意: 1.distinct[查询字段],必须放在要查询字段的开头,即放在第一个参数: 2.只能在SELECT 语句中使用,不能在 INSERT, DELETE, UPDATE 中使用: 3.DISTINCT 表示对后面的所有参数的拼接取 不重复的记录,即查出的参数拼接每行记录

随机推荐