
JS
F-Fanger
这个作者很懒,什么都没留下…
展开
-
【分享】js比较两个对象输出不同的字段 输出不同字段的值
js比较两个对象输出不同的字段输出不同字段的值原创 2022-06-13 16:41:04 · 820 阅读 · 0 评论 -
【分享】 Javascript 从2个数组中查找不匹配的对象
如何从两个数组中找到不同的对象原创 2022-06-13 16:24:18 · 661 阅读 · 0 评论 -
【分享】JS中forEach到底可以改变原数组吗
平时写代码的时候有没有发现一个问题觉得forEach是可以改变原数组的,但是有时候发现又不能改变原数组,此时是不是很迷了。but你有去仔细的分析数组中的每一项的类型吗?你会发现能改变原数组的数组为对象数组,而不能改变的数组是数字字符串数组。根本原因在于前者是引用数据类型,后者为基本数据类型。 forEach方法只是操作数据而已,数组里的数据是如何引用的呢 ?js的数据有基本数据类型和引用数据类型,同时引出堆内存和栈内存的概念。对于基本数据类型:Number、String 、Boolean、Null、U原创 2022-06-08 10:33:39 · 3562 阅读 · 0 评论 -
【记录】前端拿到的字符串数组转数组后经度丢失问题解决 字符串数组转数组后经度丢失
场景:后端传了一个字符串数组 “[1531463625753477122,1531463625820585985]”,这里明显用JSON.parse反序列化就转成数组了,但是这个long类型并且它的长度超过了Number类型的最大长度的时候,就会发生精度缺失。所以问题就出现了无法得到正确的Number。前端处理的解决办法:let strArr = "[1531463625753477122,1531463625820585985]"let arr = strArr.split(',')let n.原创 2022-05-31 11:15:53 · 488 阅读 · 0 评论 -
js用递归实现数组转树状结构数组 数组转成树形结构数组
前言: 工作中需要将一个扁平的数组转换为嵌套的树状结构的数组// 原始数据结构let region = [ ['北京市','北京市','东城区'], ['北京市','北京市','西城区'], ['北京市','北京市'], ['四川省','成都市'], ['四川省','成都市','高新区'],]// 理想数据结构list = [{ id: "北京市0", index: 0, label: "北京市", pid: "",.原创 2022-05-24 10:35:08 · 3395 阅读 · 0 评论 -
前端转换图片格式 前端将png格式图片转成jpg格式 前端用使用canvas转换图片格式
在开发中,遇到这样一个需求。由于我们的照片是要下发到设备上,而我们的设备只支持jpg格式的图片。那么我们不能限制用户只选择jpg图片进行上传,这样用户体验极差。解决方案:用canvas转换图片的格式1、把转换的方法单独放在imgTypeChange.js中imgTypeChange.js文件// 把image 转换为 canvas对象function imgToCanvas(image) { let canvas = document.createElement("canvas"); c原创 2022-02-22 21:55:14 · 5890 阅读 · 0 评论 -
js 用replace替换空格 替换空格包含换行符 替换空格不包含换行符
第一种:替换所有的空格包含换行符let str = '123AD asadf asadfasf\n adf\n'let a = str.replace(/\s+/g," ")console.log(a) // 123AD asadf asadfasf adf 由上可看出是把所有空格替换为 ;了,其中包含\n也被替换了。总结:\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [&原创 2022-02-16 16:35:11 · 11162 阅读 · 1 评论 -
通过JS取出字符串格式的HTML属性值
案例let str = '<span data-dictId="0">123</span><span data-dictId="1">123</span><span data-dictId="2">123</span><span data-dictId="3">123</span><span data-dictId="4">123</span><span data-dictId="原创 2022-01-10 12:48:08 · 935 阅读 · 0 评论 -
前端直接导出图片功能 利用html2canvas导出图片
背景:最近在项目中有这样一个场景,当用户点击“导出”时,需要把当前页面的数据分析导出成一张图,并且直接下载到本地。(当前页面包含有echarts图)1、安装依赖包 html2canvasnpm i -S html2canvas2、在需要使用导出的页面导入 html2canvasimport html2canvas from "html2canvas";<div class="export-btn" @click.stop.once ="exportClick">原创 2021-09-24 19:36:18 · 1587 阅读 · 0 评论 -
formData入参坑
formData入参时,会默认把null类型转字符串’null’, 解决办法就是直接把null 替换为’’ 空字符串即可let formData = new FormData() for (let key in data) { if (data.hasOwnProperty(key)) { let ele = data[key] // 把null转化成了“null”(可以用这段代码检验console.log(new String(null))) if(ele ===原创 2021-09-22 20:39:06 · 738 阅读 · 0 评论 -
js如何获取前几个月或后几个月时间 获取当前时间的多少天前或者多少天后
/** *获取几个月前的输入日期 *{param:DateTime} date 输入日期(YYYY-MM-DD) *{param:number } monthNum 月数 */ function GetPreMonthDay(date, monthNum) { var dateArr = date.split('-'); var year = dateArr[0]; //获取当前日期的年份 var mon原创 2021-08-20 17:25:55 · 934 阅读 · 0 评论 -
使用淘宝镜像安装npm包
npm install --registry=https://registry.npm.taobao.org原创 2021-07-27 10:53:36 · 116 阅读 · 0 评论 -
JS 一天时间戳
const jintian = new Date(new Date().toLocaleDateString()).getTime() const mingtian = new Date(new Date().toLocaleDateString()).getTime() + 24*60*60*1000; console.log(jintian); //今天0点时间戳 console.log(mingtian); //明天0点时间戳 function timestampToTime(tim.原创 2021-07-09 14:51:19 · 2548 阅读 · 0 评论 -
JS 查找字符串中某字符第几次出现的位置
/** * 查找字符串中某字符第几次出现的位置 * @param {*} str 某字符串 * @param {*} char 某字符 * @param {*} num 第几次出现的位置(不是索引位置) * @returns 下标位置(索引位置) */function findCharIndex(str, char, num) { var index = str.indexOf(char) for (var i = 0; i < num - 1; i++) { inde原创 2021-06-30 11:12:07 · 1852 阅读 · 0 评论 -
js 判断某字符出现的个数
//得到字符串含有某个字符的个数 // str 查找的字符串// char 某个字符function getCharCount(str,char){ var regex = new RegExp(char, 'g'); // 使用g表示整个字符串都要匹配 var result = str.match(regex); //match方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 var count=!result ? 0 : result.length; r原创 2021-06-30 10:08:24 · 620 阅读 · 0 评论 -
vue 数字动态增加显示 动态显示数字
<template> <div class="number-grow-warp"> <span ref="numberGrow" :data-time="time" :class="{ 'number-grow': isShowClass }" >{{ value }}</span > </div></template><script>expor原创 2021-04-22 17:40:42 · 3015 阅读 · 0 评论 -
将数组里某个属性相同的对象合并成一个数组
原数组如下:let resData = [ { "name": "住院医疗最高报销", "tagName": "医疗", "insuredAmount": "6000" }, { "name": "身故赔付", "tagName": "寿险", "insuredAmount": "36.00" }, { "name": "烦死了免费陈述原创 2021-03-19 16:02:38 · 3477 阅读 · 2 评论 -
vue 刷新token 定时刷新token
第一种方法:定时刷新tokenimport { calcDate } from '@/util/date.js'import { getStore } from '@/util/store.js'created() { //实时检测刷新token this.refreshToken() }, methods: { // 方法 refreshToken() { this.refreshTime = setInterval(() => { c.原创 2021-01-18 10:43:59 · 3047 阅读 · 0 评论 -
Js forEach 跳出循环 结束本次循环
Js forEach 跳出循环 结束本次循环forEach中结束本次循环let arr = [1, 2, 3];arr.forEach(item => { if(item === 2) { return false } console.log(item)// 1,3})2. forEach跳出循环(终止循环)let arr = [1, 2, 3];try { arr.forEach(item => { if(item原创 2021-01-08 16:21:54 · 1611 阅读 · 0 评论 -
JS 重置对象 ForEach重置对象
JS 重置对象 ForEach重置对象例如:我们要重置这个对象的键的值let query = { pageIndex: 1, pageSize: 10, queryJson: [], direction: 'name', sortName: 'desc' }解决方法:Object.keys(query).forEach(function(key){ if(key=='pageIndex'){原创 2020-12-31 10:52:33 · 1390 阅读 · 0 评论 -
vue 通过IP地址解析省市 前端通过后台返回的ip地址解析得到地址
vue 通过IP地址解析省市 前端通过后台返回的ip地址解析得到地址我使用的是太平洋的请求地址:http://whois.pconline.com.cn/ipJson.jsp?ip=182.140.44.44&json=true // 182.140.44.44 是自己要解析的IP地址因为存在跨域的问题,所以后端转成了我们的域名访问// ip 传入需要解析的ip即可export const ipAnalysis = ip => request({ url: baseI原创 2020-12-25 16:37:52 · 1469 阅读 · 0 评论 -
promise和setTimeout执行顺序的问题
promise分为三种状态pending:初始状态;resolve:代表成功;reject:代表失败。promise本身是同步Promise对象表示未来某个将要发生的事件,但在创建Promise时,作为Promise参数传入的函数是同步执行的,但then方法中的回调函数执行则是异步的。|宏任务:将 setTimeout、setlnterval放在宏任务中;微任务:Promise放在微任务中。执行的先后顺序:1、首先执行栈里的任务;(就是同步任务)2、执行栈清空后,检查微任务队列,将可执行原创 2020-11-08 21:17:44 · 673 阅读 · 1 评论 -
JS 惰性载入
// 封装一个事件绑定event.on = function (dom, type, fn) { if (document.addEventListener) { dom.addEventListener(type, fn, false); } else if (document.attachEvent) { dom.attachEvent('on' + type, fn); } else { dom['on' + type] = fn;原创 2020-11-08 21:11:09 · 192 阅读 · 1 评论 -
JS 闭包实现封装
/* 封装进阶: 1、将不需要暴露的属性和方法定义为私有的: 2、可以提供一个特权方法允许其他人进行操作(其他人进行操作指的是读取和写入) 3、使用闭包对整个类的声明进行封装*/ (function () { function User(name, age, gender) { // this.name = name; // 这里既可以 u1.name原创 2020-11-08 21:05:28 · 599 阅读 · 0 评论 -
JS字符串False转Boolean ‘fasle‘ ‘true‘ 转布尔类型
JS字符串False转Boolean ‘fasle’ ‘true’ 转布尔类型用Boolean()直接转 ‘false’ ‘true’ 的结果都是true 如图所示:解决办法:(常用的)方法一:直接上图方法二:直接上图原创 2020-10-29 11:05:03 · 3862 阅读 · 0 评论