javascript常用算法代码

判断闰年

算法:能被4整除,不能被100整除 或 能被400 整除

var year;
if(year &4 == 0 && year % 100 != 0 || year % 400 ==0){

}else{

}
补0

若数字小于10,则在个位数前补’0’

var time;
var result = time < 10 ? '0'+ time : time;
用for循环打印一行5⭐

描述:循环若采用,每次循环均打印一颗⭐,则网页会将循环次数显示,实际打印一颗⭐。希望打印出一行五颗⭐,即“⭐⭐⭐⭐⭐”

方法:采用字符串追加的方式

var str = '';
for	(var i = 0; i < 5; i++){
	str = str + '⭐';
}
consol.log(str);
倒三角:双重循环
var str = '';
for(var i = 1; i <= 10; i++){
	for(var j = i; j <=10; j++){
		str = str + '⭐';
	}
	str += '\n';
}
console.log(str);
九九乘法表(正三角):双重循环
var str = '';
for(var i = 1; i <= 9; i++){
	for(var j = 1; j <= i; j++){
		// 1 × 2 = 2
		str += j + '×' + i + '=' + i * j + '\t';
	}
	str += '\n';
}
console.log(str);
冒泡排序:数组

一次比较两个元素,将顺序错误的交换

var arr = [5 4 3 2 1]'
for (var i = 0; i < arr.length - 1; i++){
	for ( var j = 0; j < arr.length - i - 1; j++){
		// 内部交换两个数
		if (arr[j] > arr[j + 1]){	// 从小到大排序
			var temp = arr[j];
			arr[j] = arr[j + 1];
			arr[j + 1] = temp;
		}
	}
}

倒计时:时间对象

核心算法:

  1. 输入的时间减去现在的时间,但不能用时分秒直接相减,如05分减去25分
  2. 用__时间戳__
  3. 把剩余时间总的毫秒数转换

转换公式

  1. d = parseInt(总秒数/60/60/24)
  2. h = parseInt(总秒数/60/60%24)
  3. m = parseInt(总秒数/60%60)
  4. s = parseInt(总秒数%60)
	funtion countDown(time){
		var now = +new Date();	
		var inputTime = +new Date(time);
		var times = (inputTime - nowTime) / 1000;	// time时剩余时间总的秒数 
		var d = parseInt(times / 60 / 60 / 24)
		d = d < 10 ? '0' + d : d'
		var h = parseInt(times / 60 / 60 % 24)
		var m = parseInt(times / 60 % 60)
		var s = parseInt(times % 60)
		return d + '天' + h + '时' + m + '分' + s + '秒' ;
	}

筛选出所需元素:数组对象

核心思路:将所需元素保存到新数组
亮点:采用push()数组函数,而不是原始赋值

	var arr = [1500 ,1200, 2000, 2100, 1800]
	var newArr = [];
	for (var i = 0; i < arr.length; i++){
		if(arr[i] < 2000){
			// newArr[newArr.length] = arr[i];
			newArr.push(arr[i]);
		}
	}

元素去重:数组对象

描述:去除一个数组中重复的元素
目标:将旧数组去除重复后的元素放入新数组,重复元素仅保留一个
核心思路

  1. 遍历旧数组元素,比较新数组元素,若新数组中不存在该比较元素,则添加,反之反之
  2. 判断元素存在:indexOf(比较元素),返回-1表示不存在该比较元素
  3. 添加元素:push(元素)
	funtion unique(arr){
		var newArr = [];
		for (var i = 0; i < arr.length; i++){
			if (newArr.indexOf(arr[i] === -1){
				newArr.push(arr[i]);
			}
		}
		return newArr;
	}

判断字符串出现最多的字符

描述:已知一串字符串, 要求判断出现次数最多的字符,并统计其字数

核心算法:

  1. 用charAt()遍历这个字符串
  2. 把各字符给对象存储,若对象无此属性,为1,若存在则+1
  3. 遍历对象,得到最大值和该字符
	var str = 'abcoefoxyozzopp';
	var o = {};
	for (var i = 0; i < str.length; i++){
		var chars = str.charAt(i);	// char是每个字符
		if(o[chars]){	// o[chars] 得到的是属性值
			o[chars]++:
		}else{
			o[chars] = 1;
		}
	} 
	// 2. 遍历对象
	var max = 0;
	var ch = '';
	for (var k in o){
		if(o[k] > max){
			max = o[k];
			ch = k;
		}
	}
去除字符串左右两侧空格

语法:字符串变量.trim()

	const str = '        示例文本           '
	console.log(str.trim())

if(tx.value.trim() !== ''){
	item.style.dispaly = 'block'
	text.innerHTML = tx.value
}
// tx、item、text均为DOM变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值