美文网首页
JS常用数据处理方法总结

JS常用数据处理方法总结

作者: 丶灰太狼他叔 | 来源:发表于2019-05-29 11:19 被阅读0次

1、树形数据转换

在处理商品分类数据、企业列表数据等情况下,后台会返回到前台所有的数据。我们需要根据parentId,数据ID将数据转换为树形数据进行渲染。

/**
 * 树形数据转换
 * @param {*} data
 * @param {*} id
 * @param {*} pid
 */
export function treeDataTranslate(data, id = 'id', pid = 'parentId') {
  var res = []
  var temp = {}
  for (var i = 0; i < data.length; i++) {
    temp[data[i][id]] = data[i]
  }
  for (var k = 0; k < data.length; k++) {
    if (temp[data[k][pid]] && data[k][id] !== data[k][pid]) {
      if (!temp[data[k][pid]]['children']) {
        temp[data[k][pid]]['children'] = []
      }
      if (!temp[data[k][pid]]['_level']) {
        temp[data[k][pid]]['_level'] = 1
      }
      data[k]['_level'] = temp[data[k][pid]]._level + 1
      temp[data[k][pid]]['children'].push(data[k])
    } else {
      res.push(data[k])
    }
  }
  return res
}

2、获取当前年月日

/**
 * 获取当前年与日
 * 格式为 YYYY-MM-DD
 */
export function getNowFormatDate() {
  let date = new Date();
  let seperator1 = "-";
  let year = date.getFullYear();
  let month = date.getMonth() + 1;
  let strDate = date.getDate();
  if (month >= 1 && month <= 9) {
    month = "0" + month;
  }
  if (strDate >= 0 && strDate <= 9) {
    strDate = "0" + strDate;
  }
  let currentdate = year + seperator1 + month + seperator1 + strDate;
  return currentdate;
}

3、对象的深拷贝

在vue项目中,常常会碰到编辑数据的问题。当用户点击了编辑,进行数据编辑。然而并没有进行保存,这样就会导致页面数据保留更改(双向数据绑定)造成很不好的体验。这时就需要对对象进行深拷贝来避免这个问题。

export function deepClone(source) {
  if (!source && typeof source !== 'object') {
    throw new Error('error arguments', 'shallowClone')
  }
  const targetObj = source.constructor === Array ? [] : {}
  for (const keys in source) {
    if (source.hasOwnProperty(keys)) {
      if (source[keys] && typeof source[keys] === 'object') {
        targetObj[keys] = source[keys].constructor === Array ? [] : {}
        targetObj[keys] = deepClone(source[keys])
      } else {
        targetObj[keys] = source[keys]
      }
    }
  }
  return targetObj
}

未完待续。。。

相关文章

  • JS常用数据处理方法总结

    1、树形数据转换 在处理商品分类数据、企业列表数据等情况下,后台会返回到前台所有的数据。我们需要根据parentI...

  • js常用方法总结

    1.手机类型判断 2.返回字符串长度,汉子计数为2 3.获取url中的参数 4.js绑定事件适用于任何浏览器的元素...

  • js 常用方法总结

    字符串的常用属性,概览 Array对象的方法; 详细js数组常用方法大全

  • 总结js常用方法

    数组和对象比较。取出对象的key和数组元素相同的 弹出框一直在屏幕中间 js倒计时 string 常用方法: 1....

  • Js中Array()的使用

    Array()是在Js中经常用到,现总结常用的一些方法 声明: varlist=newArray() 赋值: li...

  • JS截取与分割字符串常用技巧总结

    JS截取与分割字符串常用技巧总结 本文实例讲述了JS截取与分割字符串的常用方法。分享给大家供大家参考,具体如下: ...

  • 总结js常用函数和常用技巧

    学习过程中总结的干货,包括常用函数、常用js技巧、常用正则表达式等。 Ajax封装 使用方法: 后台响应Ajax ...

  • javaScript引用类型之Array

    总结Array常用的18个api 栈方法(LIFO数据结构--last in first out ...

  • js object 常用方法总结

    Object.assign(target,source1,source2,...) 该方法主要用于对象的合并,将源...

  • js常用方法使用总结

    说明: 1. 在项目中使用一些工具类,公共类是非常有必要的,不仅是后台,前段亦是一样 2. 这里提供我收集的常用方...

网友评论

      本文标题:JS常用数据处理方法总结

      本文链接:https://www.haomeiwen.com/subject/qruetctx.html