along.js详解编程语言

平时写代码用到的方法,就给封装了一下。需要的拿走不谢。。。

1.数组去重 并判断一个元素出现的次数 
handle(str){ 
let arr=str.split('') 
var newarr=[]; 
var obj={}; 
for(var i=0;i<arr.length;i++){ 
if(!obj[arr[i]]){ 
newarr.push(arr[i]); 
obj[arr[i]]=1; 
}else{ 
obj[arr[i]]++; 
} 
} 
console.log(obj);//{a: 3, b: 2, c: 1, d: 2, e: 1, …} 
    } 
2.获取最小与最大时间的方法 
getAll(value1, value2) { 
var arr = []; 
var getDate = function(str) { 
var tempDate = new Date(); 
var list = str.split("-"); 
tempDate.setFullYear(list[0]); 
tempDate.setMonth(list[1] - 1); 
tempDate.setDate(list[2]); 
return tempDate; 
} 
var date1 = getDate(value1); 
var date2 = getDate(value2); 
if(date1 > date2) { 
var tempDate = date1; 
date1 = date2; 
date2 = tempDate; 
} 
date1.setDate(date1.getDate()); 
var dateArr = []; 
var i = 0; 
while(!(date1.getFullYear() === date2.getFullYear() && 
date1.getMonth() === date2.getMonth() && date1.getDate() === date2 
.getDate())) { 
var dayStr = date1.getDate().toString(); 
if(dayStr.length === 1) { 
dayStr = "0" + dayStr; 
} 
dateArr[i] = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + 
dayStr; 
date1.setDate(date1.getDate() + 1); 
i++; 
} 
arr = dateArr; 
arr.push(value2) 
return arr; 
} 
3.数组扁平化  
flat(arr){ 
var newArr =[]; 
for(var i= 0; i < arr.length; i++){ 
if(arr[i] instanceof Array){ 
newArr = newArr.concat(this.flat(arr[i])); 
}else{ 
newArr.push(arr[i]); 
} 
} 
return newArr; 
} 
4.时间戳转化成时间格式 
timeFormat(timestamp){ 
var time = new Date(timestamp); 
var year = time.getFullYear(); 
var month = time.getMonth()+1; 
var date = time.getDate(); 
var day=time.getDay(); 
return year+'-'+this.add0(month)+'-'+this.add0(date) 
} 
add0(m){return m<10?'0'+m:m } 
5.星期封装方法 返回星期几 
GetWeek(num){ 
let b=num%7; 
switch(b){ 
case 1: 
return '周一' 
case 2: 
return '周二' 
case 3: 
return '周三' 
case 4: 
return '周四' 
case 5: 
return '周五' 
case 6: 
return '周六' 
case 0: 
return '周日' 
default: 
console.log('有误') 
} 
} 
6.取最小值 
Minarr(arr){ 
return Math.min(...arr); 
} 
7.取最大值 
Maxarr(arr){ 
return Math.max(...arr); 
} 
8.如何用异步解决下面问题? 
function getNextEvent(){ 
var event1=getNextKeyboarEvent(); 
var event2=getNextTouchEvent(); 
return event1 || event2 
} 
function getNextEvent(callback){ 
let timer=setInterval(function(){ 
let event=getNextKeyboarEvent() || getNextTouchEvent() 
if (event) { 
clearInterval(timer) 
callback(event) 
} 
}) 
} 
9.冒泡排序:依次对相邻的两个数据进行比较,大的放在后面,小的放在前面 
function Arrp(arr){ 
var temp=0; 
for(let i=0;i<arr.length;i++){ 
for(let j=i+1;j<arr.length;j++){ 
if(arr[i]>arr[j]){ 
temp=arr[i]; 
arr[i]=arr[j]; 
arr[j]=temp; 
} 
} 
} 
console.log(arr) 
} 
10.选择排序:将第一位的数据与后面的数据依次比较,得到最小值与第一位交换,第二位大的值再一次与后面的数据依次比较,进行排序。 
function ArraySt(arr){ 
for(let i=0;i<arr.length-1;i++){ 
var min=arr[i];//假设第一位是最小值 
var minIndex=i;//再拿到最小值时的索引 
for(let j=i+1;j<arr.length;j++){ 
if(min>arr[j]){//假设失败 最小值大于了后一位的值 
min=arr[j];//存储此时的最小值 
minIndex=j;//存储此时最小值的索引 
                    } 
} 
arr[minIndex]=arr[i];//再把第一位的数据放在第二位最小值的位置 
arr[i]=min;//再把最小值放在第一位的位置 
            } 
console.log(arr) 
} 
11.数组去重 
function Setarr(arr){ 
var set = new Set(arr); 
return set; 
} 
12.实现数据双向绑定 
<body> 
<div id="app"> 
<input type="text" id="txt"> 
<p id="show-txt"></p> 
</div> 
<script> 
var obj = {} 
Object.defineProperty(obj, 'txt', { 
get: function () { 
return obj 
}, 
set: function (newValue) { 
document.getElementById('txt').value = newValue 
document.getElementById('show-txt').innerHTML = newValue 
} 
}) 
document.addEventListener('keyup', function (e) { 
obj.txt = e.target.value 
}) 
</script> 
</body> 
13.将数字金额每三位用逗号分隔 
// * 功能:金额按千位逗号分隔 
// * 参数:s,需要格式化的金额数值.  
// * 参数:type,判断格式化后的金额是否需要小数位.  
// * 返回:返回格式化后的数值字符串.  
    formatMoney(s, type) { 
if (/[^0-9]/.test(s)) 
return "0.00"; 
if (s === null || s === "null" || s === "") 
return "0.00"; 
s = s.toString().replace(/^(/d*)$/, "$1."); 
s = (s + "00").replace(/(/d*/./d/d)/d*/, "$1"); 
s = s.replace(".", ","); 
var re = /(/d)(/d{3},)/; 
while (re.test(s)) 
s = s.replace(re, "$1,$2"); 
s = s.replace(/,(/d/d)$/, ".$1"); 
if (type === 0) { 
var a = s.split("."); 
if (a[1] === "00") { 
s = a[0]; 
} 
} 
return s; 
}   
14.获取任意两日期内所有的月份 
getMonthBetween(start, end) { 
var result = []; 
var s = start.split("-"); 
var e = end.split("-"); 
var min = new Date(); 
var max = new Date(); 
min.setFullYear(s[0], s[1]); 
max.setFullYear(e[0], e[1]); 
var curr = min; 
while(curr <= max) { 
var month = curr.getMonth()+1; 
result.push(curr.getFullYear() + "-" + (month < 10 ? ("0" + month) : month)); 
curr.setMonth(month); 
} 
return result; 
} 
15.获取日期前天,昨天,今天,明天,后天... 
GetDateStr(AddDayCount) {  
var dd = new Date();  
dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期  
var y = dd.getFullYear();  
var m = dd.getMonth()+1;//获取当前月份的日期  
var d = dd.getDate();  
return y+"-"+m+"-"+d;  
} 
16.url地址传递数据截取 
var url="http:item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e"; 
function StrUrl(url){ 
let result={}; 
let a=url.split("?")[1]; 
let b=a.split("&"); 
for(let i=0;i<b.length;i++){ 
result[b[i].split("=")[0]]=b[i].split("=")[1] 
} 
return result; 
}

 渡人如渡己,渡已,亦是渡当我们被误解时,会花很多时间去辩白。 但没有用,没人愿意听,大家习惯按自己的所闻、理解做出判别,每个人其实都很固执。与其努力且痛苦的试图扭转别人的评判,不如默默承受,给大家多一点时间和空间去了解。而我们省下辩解的功夫,去实现自身更久远的人生价值。其实,渡人如渡己,渡已,亦是渡人。

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12272.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论