文章目录
判断闰年
算法:能被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;
}
}
}
倒计时:时间对象
核心算法:
- 输入的时间减去现在的时间,但不能用时分秒直接相减,如05分减去25分
- 用__时间戳__
- 把剩余时间总的毫秒数转换
转换公式
- d = parseInt(总秒数/60/60/24)
- h = parseInt(总秒数/60/60%24)
- m = parseInt(总秒数/60%60)
- 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]);
}
}
元素去重:数组对象
描述:去除一个数组中重复的元素
目标:将旧数组去除重复后的元素放入新数组,重复元素仅保留一个
核心思路
- 遍历旧数组元素,比较新数组元素,若新数组中不存在该比较元素,则添加,反之反之
- 判断元素存在:indexOf(比较元素),返回-1表示不存在该比较元素
- 添加元素: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;
}
判断字符串出现最多的字符
描述:已知一串字符串, 要求判断出现次数最多的字符,并统计其字数
核心算法:
- 用charAt()遍历这个字符串
- 把各字符给对象存储,若对象无此属性,为1,若存在则+1
- 遍历对象,得到最大值和该字符
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变量