js
wei佳
这个作者很懒,什么都没留下…
展开
-
js从一个数组(数组对象)中删除另一个数组(数组对象)中存在的元素
【代码】js从一个数组(数组对象)中删除另一个数组(数组对象)中存在的元素。原创 2022-09-21 16:36:24 · 3968 阅读 · 1 评论 -
VUE数组根据ID相同,对 value进行累加以及数组去重
js算法转载 2022-06-14 15:45:52 · 2474 阅读 · 0 评论 -
【收藏】JS一行代码优秀写法
JS代码,一行写法转载 2022-06-08 11:06:31 · 348 阅读 · 0 评论 -
js跳出for双循环
let bool =false for (let index = 0; index < config.length; index++) { const v = config[index] for (let i = 0; i < cache.length; i++) { const e = cache[i] if(e.prop===i.prop){ bool = true break //跳出里面这层 } } if (bool) {原创 2022-02-16 12:34:18 · 5441 阅读 · 0 评论 -
二次封装input
//父组件<template> <div id="app"> <h-input v-model="name" /> </div></template><script>import hInput from "./views/demo/index";export default { name: "App", data() { return { name: "", }; }转载 2022-02-14 10:20:06 · 341 阅读 · 0 评论 -
js 输出空格
js 输出空格。\u00a0原创 2022-02-08 16:39:18 · 1726 阅读 · 0 评论 -
前端通过后端返回文件流下载文件
// 把文件流下载下来const downloadMethods = (name, res) => { const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) const link = document.createElement('a') link.href = URL.createObjectURL(blob)原创 2022-01-20 20:58:38 · 1032 阅读 · 0 评论 -
VUE输入 身份证 号,获取出生年月日
获取方式 handleIdCard(val) { // this.rowData.dateOfBirth = this.getBirthdayFromIdCard(val) if (val) { this.rowData.dateOfBirth = dateFormat(this.getBirthdayFromIdCard(val), 'yyyy-MM-dd hh:mm:ss') } else { this.rowData.dateOfB原创 2022-01-17 12:15:56 · 2319 阅读 · 0 评论 -
VUE. autocomplete option框样式修改
.shipping_autocomplete >>>.el-popper[x-placement^=bottom]{ width:500px !important; }.shipping_autocomplete >>>.el-popper[x-placement^=top]{ width:500px !important; }原创 2022-01-14 18:43:12 · 461 阅读 · 0 评论 -
JS 数字相加 补0,有的low,但是能用
fills(num, n) { // 相加补0 var len = num.toString().length while (len < n) { num = '0' + num; len++ } return num },fill(23,5) //0023原创 2022-01-14 15:37:21 · 236 阅读 · 0 评论 -
数据根据某一个相同的字段值进行分类(两种方法)
比较懒 直接复制了这两位兄弟代码,无恶意 只是留个参考,有需要可以删除转载 2022-01-11 22:54:15 · 546 阅读 · 1 评论 -
采用虚拟列表umy-UI 后自定义表格排序
sortChange({ column, prop, order }) { // prop:排序的字段、order:升序(ascending)、降序(descending)、取消排序(null) const copyTableDate = deepClone(this.tableData) let reserveData = [] // 过滤后保留的数据 const filterData = [] // 过滤掉的数据 c...原创 2022-01-05 16:41:33 · 1102 阅读 · 3 评论 -
级联地址选择、懒加载数据回显
// An highlighted block/** * 树形数据搜索(广度优先遍历) * @param {arr} tree * @param {name} string * @returns {obj} */export function breadthSearch(tree, path) { let stark = [] stark = stark.concat(tree) while (stark.length) { var temp = stark.shift()原创 2021-11-23 16:22:31 · 443 阅读 · 0 评论 -
验证json中含有HTML的内容,只保留 HTML标签内的数据
/**因为 账单采取了虚拟列表 搜索时做了高亮,改变了data的数据eg: 原始数据: “something” 改变后: “something”需要删掉 json中的 字符串拼接@param {string} value/export function initSearchVal(value) {const regEx_html = /<\s/?\s*a-zA-z_[^>"]>/gconst str = value.replace(regEx_html, ‘’)r原创 2021-10-28 15:12:04 · 178 阅读 · 0 评论 -
js 创建干净的空对象
要创建一个干净的空对象,应该使用Object.create(null)而不是剩下两种。通过做Objist.create(NULL),我们显式指定NULL作为它的原型。所以它绝对没有属性,甚至没有构造函数、toString、hasOwnProperty属性,所以如果需要的话,可以在数据结构中使用这些键,而不需要通过hasOwnProperty进行判断var obj1 = {};var obj2 = Object.create(null);var obj3 = new Object();...原创 2021-07-30 14:39:42 · 791 阅读 · 0 评论 -
深度比较两个对象是否相等
/** * 深度比较两个对象是否相等 * @type {{compare: compareObj.compare, isObject: (function(*=): boolean), isArray: (function(*=): boolean)}} */var compareObj = { // 比较两个对象是否相等 compare:function (oldData, newData) { // 类型为基本类型时,如果相同,则返回true i.转载 2021-07-28 22:57:32 · 309 阅读 · 2 评论 -
vue eslint报错hasOwnProperty方法解决
row.hasOwnProperty('doorPointInfos') ? Object.assign(this.formData, row) : Object.assign(this.formData, row, { doorPointInfos: [{ doorPointId: null, orderBoxId: null, makeBoxTime: '' }] })这里不允许直接调用对象可以具有遮盖内置对象的属性,Object.prototype从而可能导致意外行为或拒绝服务安全漏洞。例..原创 2021-05-15 16:09:27 · 2813 阅读 · 0 评论 -
vue2.x filters的问题
这在2.x中是有意的。过滤器应该是纯函数,不应该依赖于此上下文。如果你需要这个,你应该使用一个计算属性或一个方法,例如$translate(foo)。原创 2021-05-15 12:21:26 · 88 阅读 · 0 评论 -
浏览器对象BOM对象有哪些?
BOM是browser object model的缩写,简称浏览器对象模型 ,提供了独立于内容而与浏览器窗口进行交互的对象;1、window对象 ,是JS的最顶层对象,其他的BOM对象都是window对象的属性;2、document对象,文档对象;3、location对象,浏览器当前URL信息;4、navigator对象,浏览器本身信息;5、screen对象,客户端屏幕信息;6、history对象,浏览器访问历史信息;...原创 2021-05-07 12:33:33 · 953 阅读 · 0 评论 -
js计算字符串eval()
提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果:<script type="text/javascript">eval("x=10;y=20;document.write(x*y)")document.write(eval("2+2"))var x=10document.write(eval(x+17))</script>输出200427eval("2原创 2021-05-06 23:20:08 · 560 阅读 · 0 评论 -
前端开发优秀js写法 ES新特性(三)
ES11(2020)Nullish coalescing Operator(空值处理)表达式在 ?? 的左侧 运算符求值为undefined或null,返回其右侧。let user = { u1: 0, u2: false, u3: null, u4: undefined u5: '',}let u2 = user.u2 ?? '用户2' // falselet u3 = user.u3 ?? '用户3' // 用户3let u4 = use转载 2021-04-29 00:15:06 · 144 阅读 · 0 评论 -
前端开发过程中的优秀js写法 ES新特性(二)
ES9(2018)异步迭代await可以和for…of循环一起使用,以串行的方式运行异步操作async function process(array) { for await (let i of array) { // doSomething(i); }}Promise.finally()Promise.resolve().then().catch(e => e).finally();Rest/Spread 属性const values =原创 2021-04-29 00:05:09 · 67 阅读 · 0 评论 -
前端开发过程中的优秀js写法 ES新特性(一)
新特性ES6(2015)类(class)class Man { constructor(name) { this.name = '小豪'; } console() { console.log(this.name); }}const man = new Man('小豪');man.console(); // 小豪模块化(ES Module)// 模块 A 导出一个方法export const sub = (a, b) => a + b;原创 2021-04-28 23:52:44 · 182 阅读 · 0 评论 -
js 的indexof 实用
这里用 !!~ 转义 返回 true 或 false this.formOption.shipAgentListoptions = val ? shippingList.filter((item) => (!!~item.shippingAgentEn.indexOf(val.toUpperCase()) || !!~item.shippingAgent.indexOf(val.toUpperCase()))) : shippingList原创 2021-04-28 21:27:50 · 121 阅读 · 0 评论 -
Javascript算法 — 数组乱序(洗牌算法)
Javascript算法 — 数组乱序(洗牌算法)洗牌算法是将原来的数组进行打散,使原数组的某个数在打散后的数组中的每个位置上等概率的出现,即为乱序算法。Fisher-Yates先看最经典的 Fisher-Yates的洗牌算法其算法思想就是从原数组中随机抽取一个元素放入新数组从原数组(假如长度为n)中,随机生成一个索引 random从原数组中删除第 random 个元素并将其push到新数组重复第2步直到所有元素取完最终得到一个新的打乱的数组按步骤一步一步来就很简单的实现。const转载 2021-04-21 22:23:53 · 1613 阅读 · 0 评论 -
实用的,比较两个数组对象的内容,返回跟新的数组对象
因为业务需求,需要对显隐列做缓存,因为有字段排序功能,所以存入storage,导致每次发版本跟新了列表配置,不能实时跟新列表内容字段(用的avue crud组件) const arr = [...arr1].filter(x => [...arr2].every(y => y.prop !== x.prop)) //可以返回 arr1比arr2多出的字段 反之比较少了的字段colOptionDiff(tableOption) { // 新增了的配置对象(比较取出的本地.原创 2021-04-21 22:17:41 · 641 阅读 · 0 评论 -
JS 数组中的对象去重-reduce() 和set()
reduce()方法接收一个回调函数作为第一个参数,回调函数又接受四个参数,分别是:1.previousValue => 初始值或上一次回调函数叠加的值;2. currentValue => 本次回调(循环)将要执行的值;3. index =>“currentValue”的索引值;4. arr => 数组本身;let person = [{id: 0, name: “小明”},{id: 1, name: “小张”},{id: 2, name: “小李”},{.原创 2021-04-18 21:49:48 · 367 阅读 · 0 评论 -
JS较高级写法 可选链操作符(避免对象为空时枚举时报错)
前言可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。在探索一个对象的内容时,如果不能确定哪些属性必定存在,可选链操作符也原创 2021-03-14 18:57:50 · 1027 阅读 · 7 评论 -
js运算符的使用技巧 !!、~、|、+、&
前言本文集合了了js运算符的一些特殊应用。js位运行符的运用。js运算符的使用技巧。一、是否包含指定字符: ~~“str1”.indexOf(“str2”)str1 被查找的字符串str2 查找的字符串如果 str1 不含有 str2 ,则返回数字 0 。例:var str1='abc';var str2='a';if(~str1.indexOf(str2)){ console.log('有'+str2) //有a}else{ console.log('无'+str2)}原创 2021-03-19 13:40:58 · 2178 阅读 · 0 评论 -
reduce() 的用法
reduce() 的用法一、语法arr.reduce(function(prev,cur,index,arr){...}, init);项目Valuearr表示原数组;prev表示上一次调用回调时的返回值,或者初始值 init;cur表示当前正在处理的数组元素;index表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;init表示初始值。二、实例var sum = arr.reduce(functi原创 2021-02-25 16:03:40 · 523 阅读 · 0 评论 -
JavaScript数组(Array)方法大全
JavaScript数组(Array)方法大全js中数组的方法种类众多,有ES5之前版本中存在的,ES5新增,ES6新增等;并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中原型上的方法。一、在使用数组的方法之前,需要先创建数组,创建数组有以下方式:字面量方式(json方式)var arr1 = []; //创建一个空数组var arr2 = [5]; //创建一个具有单个元素的数组var原创 2021-03-11 15:38:03 · 3711 阅读 · 0 评论 -
了解new一个对象具体过程
newnew一个对象的过程发生了什么new一个对象的过程发生了什么创建一个对象通常需要两步:1. 定义构造函数;2. 通过new来创建对象实例。当我们使用new新建一个对象的时候,以new foo(…)为例:1. 一个新的对象被创建,同时继承了对象类型的原型,即foo.prototype;2. 执行对象类型的构造函数,同时该实例的属性和方法被this所引用,即this指向新构造的实例;3. 如果构造函数return了一个新的“对象”,那么这个对象就会取代整个new出来的结果。如果转载 2021-04-11 21:40:11 · 3065 阅读 · 0 评论