
JavaScript
JavaScript
mossbaoo
不积跬步无以至千里,不积小流无以成江海。
展开
-
js 把数组中某个属性的相同值进行分类,累加数量,生成新的数组
中是否已存在具有相同分类的元素。如果存在,我们就增加该分类对应的数量;如果不存在,则将当前分类添加到。根据数组中某个字段的相同值进行分类,然后对该字段相同值的元素的数量进行累加,最后生成新的数组。中,并将数量初始化为 1。,其中包含了根据分类进行数量累加后的结果。中的值转换为数组,生成了新的数组。在这个示例中,我们遍历了原始数组。,对于每个元素,我们检查。原创 2024-04-16 18:24:44 · 557 阅读 · 0 评论 -
js 获取地址栏的某个参数值
要获取地址栏的某个参数值,你可以使用 JavaScript 中的 URLSearchParams 对象或正则表达式。函数通过正则表达式匹配地址栏中的查询字符串,并返回指定参数的值。无论使用哪种方法,记得替换。是地址栏中的查询字符串,是你要获取的参数名。方法二:使用正则表达式。为你要获取的参数名。原创 2024-02-02 11:48:53 · 1099 阅读 · 0 评论 -
js 把数组分成每4个一组,并且不足4个时补空
使用 JavaScript 中的 slice() 和 push() 方法来实现这个功能。使用 for 循环和 slice() 方法将原始数组切割成指定大小的多个子数组,并使用 while 循环将不足指定大小的子数组补充为空值(null)。最后,它将所有子数组存储在 result 数组中并返回。原创 2024-01-17 15:51:22 · 1254 阅读 · 0 评论 -
js 判断对象数组中是否有某个对象,有则替换,无则添加
【代码】js 判断对象数组中是否有某个对象,有则替换,无则添加。原创 2023-05-30 14:40:27 · 1589 阅读 · 0 评论 -
Vue 在methods中使用当前页面过滤器Filter
【代码】Vue 在methods中使用当前页面过滤器Filter。原创 2023-05-15 19:04:16 · 458 阅读 · 1 评论 -
js 数组for循环请求接口,并把返回数据放进新数组
用一个数组中的每个值去循环请求接口,获取对应数据放进新数组。要在循环中使用async、await,可以使用for…of或者for 循环,while循环等,不能使用foreach,因为在forEarch里执行await会并行的。# 有了for循环 为什么还要forEach?## forEach的介绍 #原创 2022-11-18 12:01:33 · 4424 阅读 · 0 评论 -
vue 解决报错[Vue warn]: Computed property “checkAll“ was assigned to but it has no setter.
在vue项目中使用到计算属性computed 时报错:[Vue warn]: Computed property "checkAll" was assigned to but it has no setter.原因是:计算属性computed :checkAll 主动赋值了,但是它并没有定义 set 方法。解决办法:对该计算属性添加 get 和 set 方法data() { return { dataList: [], }},compu.原创 2021-11-20 14:59:19 · 4082 阅读 · 0 评论 -
vue2 简单说明 $emit $on $off 的使用,防止$on多次触发
介绍1.$emit:触发当前实例上的事件。附加参数都会传给监听器回调。2.$on:监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。3.$off:移除自定义事件监听器。场景从详情页回到列表页时,把详情页的参数带回到列表页。也可以说是在列表页监听并接收详情页在该事件的回调。方法1. 先在项目中新建一个js文件(eventbus.js),内容为:import Vue from 'vue'e...原创 2021-11-11 10:28:32 · 2359 阅读 · 0 评论 -
JS/JQ 给对象动态添加属性,把表单的所有input值添加进对象
JSvar obj = {};button.onclick = function(){ var name = document.getElementById('name').value; var phone = document.getElementById('phone').value; obj[name] = phone; }JQvar obj = {};$("#button").click(function(){ var name = .原创 2021-04-29 16:40:53 · 1399 阅读 · 0 评论 -
vue/uniapp - 返回上一页并onLoad刷新数据
在uni中,返回页面是不会触发onLoad方法的;如果我们只想在特定情况下返回上一页才需要刷新数据,那么用onShow的话,那刷新就太频繁了;这时候,可以用$emit和$on去解决。比如说,从详情页(detail.vue) 回到 列表页(list.vue):详情页(detail.vue):methods:{ back() { uni.$emit('refreshData'); uni.navigateBack({ delta: 1 }) }}列表页(list.vu原创 2021-04-21 16:56:43 · 14484 阅读 · 5 评论 -
Js 修改对象数组里的对象属性名
假设,我们从后端取回来的Json对象数据中,有某些属性名不是我们想要的,就需要给它们重新命名。方法:// array为数组,old_name为修改前属性名,new_name为修改后属性名JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name')) 解释:JSON.stringify() 把json对象 转成 json字符串使用正则的 replace() 方法替换属性名JSON.parse() 再把json字符串 转成原创 2021-02-04 15:48:49 · 3703 阅读 · 1 评论 -
Js 判断数组对象中是否有某个值
方法/** * 判断数组对象中是否有某个值 * @author mossbaoo * @param {*} array 要查询的数组 * @param {*} attr 要查询的字段 * @param {*} val 要查询的字段值 */function findElem(array, attr, val) { for (var i = 0; i < array.length; i++) { if (array[i][attr] == val) { .原创 2021-01-27 10:06:44 · 8373 阅读 · 0 评论 -
Js 查找数组对象中的值
在示例数组中,如果需要通过某对象的名称来或者对应对象的id。简单来说,就是获取小明的id值。var array = [ { name: "小明", id: 1}, { name: "小吉", id: 2}];方法:let obj = array.find(o => o.name === '小明');console.log(obj.id);...原创 2021-01-13 10:08:15 · 8533 阅读 · 2 评论 -
js 冒泡排序和快速排序
冒泡排序通过相邻两个元素之间的比较和交换,使较大的元素逐渐从前面移向后面(即升序),就像水底下的气泡一样逐渐向上冒泡,所以被称为“冒泡”排序。var arr = [3, 4, 5, 1, 7, 2, 8, 9, 6, 0];function arrayRank(arr) { var num = null; for (var i = 0; i < arr.length...原创 2019-07-10 16:51:18 · 794 阅读 · 0 评论 -
vue 数据双向绑定的原理
首先简述一下什么是数据双向绑定:数据双向绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。vue实现双向数据绑定的原理,其实就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值get和设置属性值set的操作来实现的。代码演示defineProperty的用法:// 第一个参数:定义属性的对象var obj =...原创 2019-07-10 15:55:49 · 399 阅读 · 0 评论 -
js 实现颜色值格式转换 rgb和十六进制的转换
本文章是以prototype原型的方式,给string字符串类型添加方法,用于实现颜色值格式的转换。如果你不用原型方法,那么你只要借鉴实现方法就好了。RGB转换为16进制String.prototype.colorHex = function () { // RGB颜色值的正则 var reg = /^(rgb|RGB)/; var color = this;...原创 2019-06-24 14:22:42 · 28111 阅读 · 5 评论 -
es6 字符串模板拼接
字符串拼接是在日常开发中必不可少的一个环节。注意:字符串可以用单引号'',或者""双引号,出于方便大家理解,文章以下内容统一使用单引号''!如果只是一个字符串和一个变量拼接,使用传统的字符串拼接就没什么问题,只需要一个+号和一个''号就好了;但是有时候会有多个字符串与变量拼接,那么就会有一大堆的+号和''号,造成代码不美观。传统的字符串拼接var name = 'moss';var ...原创 2019-07-01 15:03:58 · 3589 阅读 · 0 评论 -
在vue项目中使用ECharts
这个示例使用vue-cli 脚手架搭建安装echarts依赖npm install echarts --save创建图表可选择全局引入 或者 按需引入全局引入会将所有的echarts图表打包进去,会导致体积过大,个人建议使用按需引入。全局引入main.js// 引入echartsimport echarts from 'echarts'...原创 2019-06-12 11:43:35 · 333 阅读 · 0 评论 -
js查询某元素在数组中的索引值(index)
制定一个查询方法!// 查询元素在数组中的索引值Array.prototype.indexValue = function (arr) { for (var i = 0; i < this.length; i++) { if (this[i] == arr) { return i; } }}如何使用?// 创建数组arrlet a...原创 2018-10-29 15:02:22 · 60959 阅读 · 12 评论 -
解决input的blur事件后button的click不执行的问题
我当时场景是微信小程序,在input中输入内容后,再点提交按钮,评论窗口隐藏了,但是提交的事件没有触发。这里的要求是: 1. input失去焦点时,需要评论窗口隐藏 2. 点击提交按钮后,既要提交,也要隐藏评论窗口当时的代码是:<div class="actionArea" v-if="isComment"> <input type="tex...原创 2018-11-09 17:00:32 · 3430 阅读 · 1 评论 -
javascript面试题 - 关于setTimeout异步的案例
var t = true;window.setTimeout(function (){ t = false;},1000);while (t){}alert('end');结果:死循环解释:js是单线程的,while和alert都是同步代码,所以会先执行while再alert,而while循环是一个死循环,所以alert也不会执行。再说setTimeout,它是异步...原创 2018-11-08 11:23:28 · 461 阅读 · 0 评论 -
Ajax异步请求传对象到后台
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串var obj = { name: 'mossbaoo', age: '22'}$.ajax({ type : "post", dataType : "json", url: "http://xxx/xxx", data : { user:...原创 2018-12-21 10:22:58 · 1025 阅读 · 0 评论 -
js利用for in循环获取 对象中的所有属性和值
for in 可以用于数组或者对象var obj = {name0: "11", name1: "22", name2: "33"};for (var key in obj){ console.log(key +':'+ obj[key])}console.log 结果是:name0:11name1:22name2:33...原创 2018-12-10 15:19:15 · 7665 阅读 · 1 评论 -
jQuery Validate.js 自定义验证规则-手机号码
HTML:<form action="xxx" method="post" id="myform"> <input type="text" name="phone" placeholder="请输入手机号码" /> <button type="submit">提交&原创 2019-01-07 17:41:48 · 2230 阅读 · 0 评论 -
js 时间戳转时间格式
封装:const formatTime = (timestamp) => { var date = new Date(timestamp*1000) const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const...原创 2019-01-30 09:58:32 · 2745 阅读 · 0 评论 -
使用vue-router设置每个页面的title
import Vue from 'vue'import Router from 'vue-router'import Home from '@/components/Home'import user from '@/pages/user/user'Vue.use(Router)const router = new Router({ routes: [ { p...原创 2019-02-27 16:48:33 · 234 阅读 · 0 评论 -
js面试题 隐式转换、原型链
js面试题 隐式转换、原型链1. 分析代码,请问执行结果是什么?var name = "World!";(function () { var name; if (typeof name === 'undefined') { name = 'Jack'; console.log('Goodbye' + name); } else { ...原创 2019-02-20 18:06:07 · 469 阅读 · 0 评论 -
js 用 new Date() 获取时间在ios端出现NaN问题的解决办法
在ios端中,使用如下方法会获得NaN,安卓手机则是正常计算new Date("2019-02-26 18:34:33").getTime()解决方法:用正则把 '-' 换成 '/' ,让时间格式变成以下格式new Date("2019/02/26 18:34:33").getTime()代码:var date = '2019/02/26 18:34:33'.repla...原创 2019-02-26 18:38:50 · 2575 阅读 · 1 评论 -
vue 用纯js监听滚动条到底部 实现上拉加载
在移动端网页项目中,基本都会有列表页的上拉加载功能。在这篇文章中,我结合vue的生命周期用纯js写了一个监听滚动条的函数。怎样用纯js判断滚动条是否到底部先了解几个重点要素:获取滚动条到顶部的位置:document.documentElement.scrollTop、document.body.scrollTop获取当前窗口内容可视区:document.documentElement.c...原创 2019-03-14 16:34:28 · 5769 阅读 · 2 评论 -
微信小程序 通过nodeJs操作MySQL进行数据交互
下面的操作,我是通过phpStudy和Navicat for MySQL搭建起来的开发环境我提供一个Navicat for MySQL的安装方法:https://blog.youkuaiyun.com/mossbaoo/article/details/88661851先来看看目前MySQL的数据:node连接MySQL,需要安装express和mysql包var express = requi...原创 2019-03-19 16:01:00 · 15745 阅读 · 14 评论 -
js 获取当前页面url链接的参数
方法:function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.slice(1).match(reg); if (r != null) return unescape(r[2]); ...原创 2019-03-11 17:10:12 · 2116 阅读 · 0 评论 -
jQuery 判断鼠标从哪个方向进入元素
$(".item").bind("mouseenter mouseleave", function(e) { var w = $(this).width(); var h = $(this).height(); var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1); var y = (e.page...原创 2019-05-20 11:11:02 · 588 阅读 · 0 评论 -
js 判断手机操作系统(ios或Android)
使用javascript判断手机操作系统(ios或Android),介绍小米的miui浏览器如何切换浏览器标识,并解决“在小米浏览器中判断手机操作系统的结果是ios/iPhone”的问题。原创 2019-05-27 15:16:45 · 8530 阅读 · 0 评论 -
移动端自适应布局--rem
【移动端自适应布局--rem】结合以下方法运用到移动端自适应布局开发中。举个栗子:假设设计妹妹给我们的设计稿宽度为750px,那么我们量到的图片尺寸为300*200px,换算为3*2rem即可引入js前:img { width: 300px; height: 200px;}引入js后:img { width: 3rem; height...原创 2018-09-19 17:31:34 · 232 阅读 · 0 评论