个人学习笔记

1、js如何将136分钟转化为几小时,几分钟

return (Math.floor(minutes/60) + "小时" + (minutes%60) + "分" );

2、js如何根据index值删除数组中的指定对象

deleteLabel(index){
	//labelBox 为数组
	this.labelBox.splice(index,1);//从数组中移除要删除的标签
	  },

3、JSON字符串转换为JSON对象

var str = '{ "name": "cxh", "sex": "man" }';
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象 或
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

obj.toJSONString(); //将JSON对象转化为JSON字符 或
JSON.stringify(obj); //将JSON对象转化为JSON字符

//去掉数组最外层的引号
eval(res.data)/

4、forEach添加循环(修改)

let _this = this;
  _this.views[1].forEach(function(v, index) {
          if (v.ishave == false) {
            let key = 'ishave'
            let value = 3;
            v[key] = value
          } else {
            v.ishave = 3;
          }
          _this.haveTask.forEach(function(a, i) {
            if (v.date == a.keyTwo) {
              v.ishave = a.value;
            }
          })
        })
        

5、消息提示

//这个是个人封装 不适用所有人
  this.$message.info('修改失败了,稍候再试试吧');

6、延时器

  setTimeout(() => {
          console.log('延期一秒执行');
        }, 1000);

7、如何控制uniapp底部导航栏的显示隐藏

 uni.hideTabBar(); //隐藏tab
 uni.showTabBar(); //显示tab

8、Promise.all

Promise.all 可以将多个 Promise 实例包装成一个新的 Promise 实例。所有的 Promise 对象都成功时返回的是一个结果数组,一旦有任何一个 Promise 对象失败则立即返回失败。

let ps1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success-1')
    }, 6000)
})

let ps2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success-2')
    }, 3000)
})

let pf1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        reject('fail-1')
    }, 4000)
})

let pf2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        reject('fail-2')
    }, 2000)
})

Promise.all([ps1, ps2]).then(arr => {
    console.log(arr) // 执行成功,输出:['success-1', 'success-2']
}).catch(error => {
    console.log(error)
})

Promise.all([ps1, pf1, ps2, pf2]).then(arr => {
    console.log(arr)
}).catch(error => {
    console.log(error) // 执行失败,输出:fail-2
})

Promise.all 可用于类似一个页面有多个请求,需要 loading 等待多个请求都执行完再渲染数据,有一个请求异常时,跳转错误页面。
注意:Promise.all 的正确返回结果数组 arr 与请求的 Promise 数组顺序一致,与异步请求响应返回的顺序无关。

9、Promise.race

Promise.race 是赛跑的意思,Promise.race 中的 Promise 数组中谁先返回成功或失败的结果,整体就返回那个结果。

let ps1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success-1')
    }, 6000)
})

let ps2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success-2')
    }, 3000)
})

let pf1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        reject('fail-1')
    }, 4000)
})

let pf2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        reject('fail-2')
    }, 2000)
})

Promise.race([ps1, ps2]).then(result => {
    console.log(result) // 执行成功,输出:success-2
}).catch(error => {
    console.log(error)
})

Promise.race([ps1, ps2, pf1, pf2]).then(result => {
    console.log(result)
}).catch(error => {
    console.log(error) // 执行失败,输出:fail-2
})

Promise.race 中的各 Promise 的执行顺序是无序的。可用于对某些不支持设置 timeout 的请求模拟请求超时和中止请求。

10、Promise.allSettled

Promise.allSettled 中的 Promise 数组全部执行完才会返回一个对象数组,其中包含了每个 Promise 的执行结果,且都有一个 status 字段,fulfilled 表示成功,rejected 表示失败。

let ps1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success-1')
    }, 6000)
})

let ps2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success-2')
    }, 3000)
})

let pf1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        reject('fail-1')
    }, 4000)
})

let pf2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        reject('fail-2')
    }, 2000)
})

Promise.allSettled([ps1, ps2, pf1, pf2]).then(arr => {
    console.log(arr) // 输出:[{status: "fulfilled", value: "success-1"}, {status: "fulfilled", value: "success-2"}, {status: "rejected", reason: "fail-1"}, {status: "rejected", reason: "fail-2"}]
})

Promise.allSettled 返回结果数组 arr 与请求的 Promise 数组顺序一致,与异步请求响应返回的顺序无关。Promise.allSettled 可通过返回的数组中的 status 字段,用于判断成功和失败的数量,如上传图片成功几张、失败几张。
注意:如果提示“Promise.allSettled is not a function”,请安装“promise.allsettled”。

11、判断手机号码是否正确

panphone(){
			if(this.phone!=''){
				var strTemp = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
				
				        if (strTemp.test(this.phone)) {
				
				        }else{
								this.$message.info('请输入正确的手机号');
								this.phone='';
						}
			}
		},

12、判断邮箱是否正确

panemail(){
			if(this.email!=''){
				Var reg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$"); //正则表达式
				     var obj = this.email; //要验证的对象
				     if(!reg.test(obj)){ //正则验证不通过,格式不对
				      this.$message.info('邮箱格式不正确');
				      this.email='';
				    }	
				
			}
			
		}

13、微信小程序分享(button)按钮页面布局问题

html

  <view class="share-img-box">
      <image src="../../static/home/share.png" style="width: 38upx;height: 38upx;" mode=""></image>
      <button open-type="share" bindcontact="handleContact" class="openChat"></button>
  </view>

css 此处用的 scss

 .share-img-box {
          width: 38upx;
          height: 38upx;
          position: relative;
          .openChat{
            top: 0;
            left: 0;
          	position: absolute;
          	width: 100%;
          	height: 100%;
          	opacity: 0;
          	z-index: 999;
          }
        }

这样布局可以自定义button按钮样式,解决button按钮有边框的问题。

14、uniapp 在微信小程序当中跳转微信小程序

go(){
 		uni.navigateToMiniProgram({
                appId:'wx30821321432afd24',//这个是要跳转的小程序appid  值为示例
                path: 'page/index/index?code='+this.code,//可以传参 如果多个参如下
                path: 'page/index/index?code='+this.code+'&code2='+this.code2+'&code3='+this.code3,//传多个参数示例  & 是拼接的不是参数名称,不可以省略
                success: res => {
                  // 打开成功
                  console.log("打开成功", res);
                },
                fail: err => {
                  console.log(err);
                }
              });
}

15、uniapp 微信小程序分享 给好友

首先需要有一个分享button
html

 <button open-type="share" bindcontact="handleContact" class="openChat"></button>

js

//和onlond 在同一级
 onShareAppMessage(res) {
      return {
        title: '欢迎浏览',
        path: '/pagesA/home/article-details?type='+ this.type + '&id='+this.id+ '&source='+ this.source,
        imageUrl: this.particulars.coverUrl
      }
    },

16、uniapp 微信小程序分享到朋友圈

需要点击右上角的三个点进行微信朋友圈分享
js

//和onlond 在同一级
  onShareTimeline() {
      return {
        title: '欢迎浏览',
        path: '/pagesA/home/article-details?type='+ this.type + '&id='+this.id+ '&source='+ this.source,
        imageUrl: this.particulars.coverUrl
      }
    },

17、window10 如何切换桌面

1、创建新的虚拟桌面:“Win"+"Ctrl"+"D"
2、关闭当前虚拟桌面:“Win"+"Ctrl"+"F4"
3、切换虚拟桌面:“Win"+"Ctrl"+"/右" 切换界面组合键  左右为上下左右键的 左右

18、三元运算符多条件判断

:note2="item.status == 0 ? '备料中' : item.status == 1 ? '部分入库' : '全部入库'" 

19、鼠标样式

cursor:pointer;//变小手
cursor:auto;//标准光标
cursor:default;//标准箭头
cursor:hand;//手形光标
cursor:wait ;//等待光标
cursor:text;//I形光标
cursor:vertical-text;//水平I形光标
cursor:no-drop;//不可拖动光标
cursor:not-allowed;//无效光标
cursor:help;//帮助光标
cursor:all-scroll;//三角方向标
cursor:move;//移动标
cursor:crosshair;//十字标

20、css 常用样式

//禁止文字换行
white-space:nowrap;
//只让背景颜色透明
background-color:rgba(245,187,0,0.1);
//弹性盒 右对齐
justify-content: flex-end;
//弹性和垂直布局
flex-direction:column;
align-items:center;
//让最后一个数组边框不显示
.xxx:nth-last-child(1){
.xian{
border:none;
margin:0 auto;
}
}
//a标签去掉下划线
a{
text-decoration:none;
}
//首行缩进两个字符
text-indent:2em;

//单行文本超出显示点点点
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

//多行文本超出显示点点点
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
word-break: break-all;

//vue超出隐藏方法
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-all;
//input框number类型下右侧加减号去除
input::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0;
}
//背景模糊
backdrop-filter: blur(5px);

//滚动条样式
::-webkit-scrollbar 滚动条整体部分,可以设置宽度啥的
::-webkit-scrollbar-button 滚动条两端的按钮
::-webkit-scrollbar-track  外层轨道
::-webkit-scrollbar-track-piece  内层滚动槽
::-webkit-scrollbar-thumb 滚动的滑块
::-webkit-scrollbar-corner 边角
::-webkit-resizer 定义右下角拖动块的样式

21、element ui 配置

//输入框icon 在前面
 prefix-icon="el-icon-search"
 //输入框icon 在后面
 suffix-icon="el-icon-date"
 //如何使用穿透修改样式
 ::v-deep .el-progress-bar__outer{
  background-color: #81C042 !important;
}
 

22、打印文件强制分页

//强制分页
<div style="page-break-after: always;"></div>
//关联性较强的内容必须在一页展示
 <div style="page-break-inside: avoid;">C</div>

23、Echarts 文档

//曲线折线
 series: [{
          data: [820, 932, 901, 934, 1290, 1330, 1320],
          type: 'line',
          smooth: true
        }]

24、循环对象添加key值

 xun() {
      let _this = this;
      var obj = {};
      this.city.forEach(function(v, index) {
        obj[v.city] = v;
      });
      console.log(JSON.stringify(obj));
    }

25、常用数字方法

//数字绝对值
Math.abs(-1)//1 

26、split()同时筛选多条件

his.labelBox = str.split(/[,,]/); //同时筛选 中文, 和英文,
//将字符串以,号分割成数组
let str = "aaa,bbb,ccc";
let arr = str.split(',');
console.log(arr);//true

27、uniapp退出应用

      //退出应用
      refundApplication(){
        if (plus.os.name.toLowerCase() === 'android') {
        		 plus.runtime.quit();
        	 }
        	 else{
        		 const threadClass = plus.ios.importClass("NSThread");
        		 const mainThread = plus.ios.invoke(threadClass, "mainThread");
        		 plus.ios.invoke(mainThread, "exit");
        	 }
      },

28、uniapp隐藏显示tabBar

uni.hideTabBar()//隐藏
uni.showTabBar()//显示

29、监听滚轴滚动方向

//监听页面滚动事件
function scrollEvent() {
    window.onscroll = function(e){
        scrollFunc();
        if(scrollDirection == 'down'){
            //页面向下滚动要做的事情
        }
        else if(scrollDirection == 'up'){
            //页面向上滚动要做的事情
        }
    }
}

30、如何去掉数组两边的引号’[1,2]’

      let map = '[{name:'娄渊洋'},{name:'娄渊洋'},{name:'娄渊洋'},{name:'娄渊洋'},{name:'娄渊洋'}]';
          map.forEach(function(item,index){
            item.value = eval(item.value)
          })

31、如何安装使用cnpm 淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

32、根据出生日期,如何获取年龄?

//计算年龄
//birthday '1998-11-16'
    getAge(birthday){
      let d = new Date(birthday)//生日
      let t = d.getTime(d) // 转换为时间戳
      let t1 = Date.parse(new Date());//获取当前时间戳
      let t2 = t1 - t;//计算时间戳之差
      t2 = t2 / 1000 / (60 * 60 * 24 * 30 * 12)//将差值转换为年
      t2 = Math.floor(t2)//向下取整
      this.ageNum = t2;
      console.log(t2);
    },

33、Element Ui 日期选择限制?

<el-date-picker
       v-model="value1"
       type="date"
       placeholder="选择日期"
       :picker-options="pickerOptions">
</el-date-picker>

今天和之后的日期

data() {
  return {
    pickerOptions: {
      disabledDate(time) {
        return time.getTime() < Date.now() - 8.64e7;  //如果没有后面的-8.64e7就是不可以选择今天的 
      }
    },
  }
}

今天和之前的日期

data() {
  return {
    pickerOptions: {
      disabledDate(time) {
        return time.getTime() > Date.now() - 8.64e6;  //如果没有后面的-8.64e6就是不可以选择今天的 
      }
    },
  }
}

34、vue强制重绘?

 this.$forceUpdate()

35、vue监听页面滚动到底部

 mounted() {
    let _this = this;
    window.onscroll = function(){
      //变量scrollTop是滚动条滚动时,距离顶部的距离
      var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
      //变量windowHeight是可视区的高度
      var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
      //变量scrollHeight是滚动条的总高度
      var scrollHeight = document.documentElement.scrollHeight||document.body.scrollHeight;
      //滚动条到底部的条件
      if(scrollTop+windowHeight >= scrollHeight-10){
        //到了这个就可以进行业务逻辑加载后台数据了

        console.log("到了底部");
      }
    }
  },

36、element ui el-table-column type=“selection”

<el-table-column show-overflow-tooltip type="selection" :selectable="isShowChoose" width="55"></el-table-column>
methods里面
//是否显示
          isShowChoose(row){
            return row.memberFlag === 1 ? true : false;
          },

37、uniapp 打包后提示版本不同是否勿略问题

可以在manifest.json文件的源码视图中配置忽略这个提醒,方式如下:
"app-plus": {  
    "compatible": {  
        "ignoreVersion": true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持  
    },  
},  

38、element ui 日期选择固定选择年月日格式

value-format="yyyy-MM-dd"

39、vue绑定回车事件

element ui 情况下

@keyup.enter.native="fetchData()"

正常情况下

@keyup.enter=“方法名”

40、正则替换域名

            let reg = /^http(s)?:\/\/(.*?)\//;
            let ToReplace = 'https://apd-2a704642d3661750e5feadd9d50cd790.v.smtcdns.com/'
             url = url.replace(reg, ToReplace)
             console.log(item.url,'未正则')
             console.log(url,'域名')
//正则判断
if (/[0-9][0-9]{0,62}(\.[0-9][0-9]{0,62})+\.?/.test(item.url) == false)

41、解决浅拷贝问题(深拷贝)

JSON.parse(JSON.stringify(this.meSend))

42、vue 鼠标悬浮div显示文字

<div class="detailed-introduction" v-bind:title="reportData.descript">
     {{reportData.descript}}
</div>

43、快速取出对象中的某一值

console.log(val.map(item => item.staffId))

43、解决小数相加精度差的问题

//number 是要四舍五入的数 m是保留几位小数
Math.round(Math.pow(10,m)*number)/Math.pow(10,m)
### 回答1: 算法个人学习笔记pdf是一种以电子文档形式呈现的算法学习笔记资源。在这个pdf中,个人学习者可以记录和整理自己在学习算法过程中的思考、心得和解题方法。在这个学习笔记pdf中,个人学习者可以自由地添加和编辑自己的学习内容,包括算法的原理、算法实现的代码以及相应的思路和分析。通过这种方式,个人学习者可以更系统地学习和理解算法,并且能够随时查看自己的学习进展和学习成果。 通过编写和整理算法个人学习笔记pdf,个人学习者可以更好地理解和应用学习到的算法知识。这种记录和整理的过程可以帮助个人学习者更深入地思考问题和解决问题的方法,同时也可以帮助个人学习者更好地复习和回顾已学习的算法知识。 对于其他学习者来说,算法个人学习笔记pdf也是一个宝贵的学习资源。其他学习者可以通过查阅个人学习者的学习笔记pdf,借鉴和学习其中的思路和方法。这样可以帮助其他学习者更好地理解和应用算法知识,同时也可以促进知识的分享和交流。 总的来说,算法个人学习笔记pdf是一个为个人学习者提供记录和整理学习过程的工具,同时也是一个为其他学习者提供学习资源和参考的媒介。通过编写和整理算法个人学习笔记pdf,个人学习者可以更好地学习和理解算法知识,同时也可以促进算法知识的分享和交流。 ### 回答2: 算法个人学习笔记pdf是一份记录个人学习算法的文档,具有以下特点和优势。 首先,这份学习笔记是以PDF格式保存的,这意味着可以在任何设备上方便地查看和阅读,无需依赖特定的平台或软件。无论是在电脑、平板还是手机上,都可以轻松地浏览和学习。 其次,这份学习笔记个人整理的,因此具有个性化的特点。不同的人在学习算法时可能会关注和理解的重点有所不同,通过个人学习笔记,可以反映出个人对算法知识的理解和思考。这样的学习笔记对于个人学习和复习过程非常有帮助。 此外,这份学习笔记应当具有清晰的结构和逻辑。算法知识通常是有层次结构的,基本的知识点和概念通常是必须掌握的基础,而进阶的知识则需要在掌握基础知识的基础上构建。学习笔记应当按照这个结构和逻辑进行组织,便于学习者理解和掌握。 最后,这份学习笔记应当具有实例和练习题。算法知识的学习不能仅仅停留在理论层面,还需要通过实际的例子和练习题进行实践和巩固。学习笔记应当包含这些实例和练习题,并给出相应的解析和答案,方便学习者进行练习和巩固。 总而言之,算法个人学习笔记pdf是一份方便、个性化、结构清晰、包含实例和练习题的文档,对于学习者来说非常有价值。 ### 回答3: 算法学习笔记PDF是一份用于记录个人学习算法的文档。通过编写学习笔记,我可以对算法的理论和实践有更深入的理解和掌握。 首先,在学习算法的过程中,理论与实践结合是非常重要的。在学习笔记中,我可以记录下算法的原理和相关的数学推导,以及对应的代码实现和应用场景。通过这样的记录方式,我可以更好地理解算法的本质和使用方式。 其次,学习笔记可以帮助我回顾和巩固所学的知识。通过整理和总结学习笔记,我可以梳理出算法的基础知识和重要思想,并将其记忆固定下来。同时,学习笔记也可以作为复习的资料,提供方便快捷的回顾方式。 此外,学习笔记还可以促进自我思考和学习方法的改进。在编写笔记的过程中,我可以思考和提出自己的问题,并通过查阅相关资料和与他人讨论,来找到问题的答案和解决方案。这样的思考过程可以帮助我提高问题解决的能力和学习效果。 最后,学习笔记可以与他人分享和交流。通过分享学习笔记,我可以与其他学习者进行交流和讨论,互相学习和提高。同时,学习笔记也可以作为自己学习和成长的见证,激励自己坚持学习和进步。 总之,算法个人学习笔记PDF是一份记录、回顾、思考和分享的文档,对于个人的算法学习具有重要的意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值