常用数据处理

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 + 1temp[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
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运行Xcode时出现 Lazy loading NSBundle MobileCoreServices.framework和 Loaded MobileCoreServices.framework

运行Xcode时出现 Lazy loading NSBundle MobileCoreServices.framework和 Loaded MobileCoreServices.framework 解决方案&#xff1a; 1、打开项目的 Product-->Scheme --> Edit Scheme--> Run-->Arguments-->Environment Variables添加Name为OS_ACTIVITY_MO…

less中的for循环

.loop(count) when (counter > 0) { .loop((counter - 1)); // 递归调用自身width: (10px * counter); // 每次调用时产生的样式代码}转载于:https://www.cnblogs.com/zhouyideboke/p/11178271.html

详解 vue-cli 的打包配置文件代码(转)

一、前言 对于webpack基础不好&#xff0c;node指令不通的童鞋。估计对自己搭建Vue、react脚手架是相当头疼的&#xff0c;有种无从下手的感觉。然而&#xff0c;从头看这2块&#xff0c;耗时太长&#xff0c;而且说实话得练才行&#xff0c;不练练手看不明白。那大多数人就采取…

iOS之页面布局-踩坑的原由

iOS之页面布局 原文请点击 在《iOS 7 UI Transition Guide》中有在《iOS 7 UI Transition Guide》的Bar and Bar Buttons一节中有这么一段话 In iOS 7, the status bar is transparent, and other bars—that is, navigation bars, tab bars, toolbars, search bars, and sco…

工作中的javascript代码收集及整理

有个pub库放在blog的文件夹里面了,注意查查1.用javascript去除字符串左右空格,包括全角和半角//用javascript去除字符串左右空格,包括全角和半角String.prototype.trim function() { //其中表示为&#xff1a;对象.属性.方法函数方法var strTrim this.replace(/(^\s*)|(\s*$)/…

iOS11 更改状态栏、导航栏颜色的方法

ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分&#xff0c;要分清这两个概念&#xff0c;后面会用到&#xff1a; 前景部分&#xff1a;就是指的显示电池、时间等部分&#xff1b; 背景部分&#xff1a;就是显示黑色或者图片的背景部分&#xff1b; (一)设…

i春秋DMZ大型靶场实验(四)Hash基础

下载工具包 打开目标机 通过目录爆破发现 phpmyadmin 在登录位置尝试注入 返现 可以注入 直接上sqlmap 上 bp 代理抓包 sqlmap.py -r bp.txt --dbs 利用sqlmap 跑出root 密码 root666888 登录 phpmyadmin t通过路径报错得到绝对路径 c:\\www\\1.php root 权限…

解决MAC系统升级导致COCOAPODS失效问题

使用pod install出现如下错误 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory 这是Mac升级系统导致&#xff0c;当你的Mac系统升级为 high siera的时候&#xff0c;别忘记更新…

ASP.NET中进行消息处理(MSMQ) 二

在我上一篇文章《ASP.NET中进行消息处理(MSMQ)一》里对MSMQ做了个通俗的介绍&#xff0c;最后以发送普通文本消息和复杂的对象消息为例介绍了消息队列的使用。 本文在此基础上继续介绍MSMQ的相关知识点&#xff0c;最后还是通过一个示例程序来分析MSMQ在实际项目开发中的应用。…

js常用的数组方法

js常用的数组方法 1.filter() 不会改变原始数组&#xff0c;新数组中的元素是过滤指定数组中符合条件的所有元素 两种写法区别&#xff1a;有return 的加了{}&#xff0c;否则没有return不需要加{} var aa [1, 2, 3, 4, 4, 5, 6, 6]; var bb aa.filter((item, index, sel…

iOS 适配HTTPS方法

一切为了迎合苹果 在WWDC 2016开发者大会上&#xff0c;苹果宣布了一个最后期限&#xff1a;到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能。App Transport Security&#xff08;ATS&#xff09;是苹果在iOS 9中引入的一项隐私保护功能&…

模板—tarjan求割边

int dfn[MAXN],low[MAXN],cnt; void tarjan(int x,int edg) {low[x]dfn[x]cnt;for(int if(x);i;in(i))if(!dfn[v(i)]){tarjan(v(i),i);low[x]min(low[x],low[v(i)]);if(low[v(i)]>dfn[x])isbridge[i]isbridge[i^1]1;}else if(i!(edg^1))low[x]min(low[x],dfn(v(i))); } 转载…

GoJs Pictures 官方介绍文档

图片 使用Picture类显示图像。 最常见的用法是使用URL字符串设置Picture.source属性&#xff0c;以及通过GraphObject.desiredSize&#xff08;图对象的所需尺寸&#xff09;获取或通过设置GraphObject.width&#xff08;图对象的宽&#xff09;和GraphObject.height&#xff0…

怎样购买及安装ssl安全证书

查找资料记录&#xff0c;不是我的项目笔记 现在越来越多的网站都开始用安全链接了&#xff0c;在国外的话&#xff0c;如果不是一个安全链接&#xff0c;用户很大程度上会拒绝使用&#xff0c;所有安全链接是未来的趋势&#xff0c;楼主第一次配安全证书的时候&#xff0c;刚刚…

XmlViewResolver 和 ResourceBundleViewResolver

使用XmlViewResolver 如果视图对象的 Bean 数目太多&#xff0c;那么直接在 smart-servlet.xml 文件中配置&#xff0c;势必影响主配置文件的简洁性。XmlViewResolver 和 BeanNameViewResolver 功能相似&#xff0c;唯一不同的是它可以将视图 Bean 定义在一个独立的 XML 文件中…

(转载)Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

转载自 Git使用教程 预警&#xff1a;因为详细&#xff0c;所以行文有些长&#xff0c;新手边看边操作效果出乎你的预料&#xff09;一&#xff1a;Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。 工作原理 / 流程&#xff1a; Workspace&#xff1a;工作…

soureTree中如何设置git 用户名与密码 SourceTree提交修改用户详细图文方法

mac上软件更新&#xff1a; 现在没有网络小模块了&#xff0c;在同行右边高级里面有默认用户名删除即可&#xff01;&#xff01;&#xff01;&#xff01; sourceTree 切换Git登录用户&#xff0c;之前在SourceTree提交远程服务用的是同事的账号&#xff0c;同事离职后账号也…

shell 脚本 生成文件,文件名为日期时间

脚本如下 #/bin/bashfilename$(date %Y%m%d)_$(date %H%M%S) touch $filename.txt 其中 $() 表示括号中的 shell 命令的结果&#xff0c;所以 filename 是一个字符串&#xff0c;比如 20190714_111631&#xff0c;即 2019 年 7 月 14 日 11 点 16 分 31 秒。 然后第二行命令&am…

js利用HTML5的拖拽API做流程图

上代码 直接用看效果&#xff0c;学习一下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style type"text/css">#d1{width:800px;height:800px;border: 1…