1.求1-100之间所有偶数的和
// 求1-100之间所有偶数的和
var sum = 0;
var i =1;
while (i<=100) {
if (i%2 === 0) {
sum += i;
}
i ++ ;
}
console.log(sum);//2550
2.do…while 求1-100 之间所有数的和
//do...while 求1-100 之间所有数的和
var sum =0;
var i = 1;
do {
sum += i;
i++;
} while (i<=100);
console.log(sum);//5050
3.for 循环 打印1-100的数
//for 循环 打印1-100的数
for (var i =1; i <= 100; i++) {
console.log(i);
}
4.for 循环 打印 1-100 所有 奇数和 偶数和
//for 循环 打印 1-100 所有 奇数和 偶数和
var odd = 0;//奇数
var even = 0;//偶数
for ( var i = 1; i<=100; i++){
if (i%2 === 0) {
even += i;
} else {
odd += i;
}
}
console.log('奇数和为:'+odd);//2500
console.log('偶数和为:'+even);//2550
5.打印正方形
// 打印正方形
var a = '';
for (var j = 1; j<=28; j++) {
for (var i=1; i<=30; i++) {
a += '* ';
}
a += '\n';
}
console.log(a);
6.打印三角形 两种方式
// //打印三角形
var a = '';
for (var i = 1; i <= 10; i++) {
for (var j = i; j<=10; j++) {
a += '* ';
}
a += '\n';
}
console.log(a);
//第二种方法
var a = '';
for (var i = 1; i <= 10; i++) {
for (var j = 1; j<=i; j++) {
a += '* ';
}
a += '\n';
}
console.log(a);
7.打印九九乘法表 两种方式
// //打印九九乘法表
var a = '';
for (var i = 1; i<=9; i++) {
for (var j = i; j<=9; j++) {
a += i+'*'+j+'='+i*j+'\t';
}
a += '\n';
}
console.log(a);
//第二种打印顺序
var a = '';
for (var i = 1; i<=9; i++) {
for (var j = 1; j<=i; j++) {
a += i+'*'+j+'='+i*j+'\t';
}
a += '\n';
}
console.log(a);
8.break 和 continue 打印1-100的和 ,把 结尾为3 的数跳过
//break 和 continue
//打印1-100的和 ,把 结尾为3 的数跳过
var sum = 0;
for (var i = 1; i<=100; i++) {
if (i % 10 === 3) {
console.log(i);
continue;
}
sum += i;
}
console.log(sum);
9.打印 50 -200 之间的第一个为7的倍数的数
//打印 50 -200 之间的第一个为7的倍数的数
for (var i=50; i<=200; i++) {
if (i % 7 === 0) {
break;
}
}
console.log(i);
10.遍历数组
// //遍历数组
var arr = ['12', '13', '14', '15' ,'16'];
for (var i =0; i<arr.length; i++) {
console.log(arr[i]);
}
11.倒叙遍历
// //倒叙遍历
for (var i = arr.length-1; i>=0 ; i--) {
console.log(arr[i]);
}
12.循环添加数组
//循环添加数组
var array = [];
for (var i = 0; i<10; i++) {
array[i] = i;
}
console.log(String(array));
//把数组清空
// array = 0;
// console.log(array);
13.求一组数中的所有数的和和平均值
//求一组数中的所有数的和和平均值
var sum = 0;
var avg ;
var array = [32, 43, 43, 56, 657, 87, 45];
for (var i = 0; i<array.length; i++) {
sum += array[i];
}
avg = sum/array.length;
console.log('数组的和为:'+sum);
console.log('数组的平均数为:'+avg);
14.求一组数中的最大值和最小值,以及所在位置
// 求一组数中的最大值和最小值,以及所在位置
var array = [32, 43, 43, 56, 65, 87, 45];
var num=array[0];
var a;
for (var i =1; i < array.length; i++ ) {
if (num < array[i]) {
num=array[i];
a=i+1;
}
}
console.log('数组的最大值为:'+num);
console.log('数组最大值的位置为:'+a);
15.将字符串数组用|或其他符号分割
// 将字符串数组用|或其他符号分割
var array = [32, 43, 43, 56, 65, 87, 45];
var str = array[0];
var a = '|';
for (var i=1; i<array.length; i++) {
str+= a+array[i];
}
console.log(str);
16.要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组
// 要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组
var array = [2, 0, 5, 56, 0, 56, 43, 0, 5];
var newarr = [];
for (var i = 0; i<array.length; i++) {
if (array[i]!==0) {
newarr[newarr.length] = array[i];
}
}
console.log(String(array));
console.log(String(newarr));
17.翻转数组
// 翻转数组
var array = [2, 0, 5, 56, 0, 56, 43, 0, 5];
for (var i = array.length-1; i >=0; i--) {
console.log(array[i]);
}
18.冒泡排序,从小到大 三种方式
// 冒泡排序,从小到大
var array = [3, 34, 123, 34, 9, 56, 77, 4];
var num ;
for (var j=0; j<array.length-1; j++) {
for (var i = 0; i < array.length-1-j; i++) {
if (array[i]>array[i+1]) {
//第一种用法 需要声明第三方变量
// num=array[i];
// array[i]=array[i+1];
// array[i+1]=num;
//第二种用法 无需声明第三方变量
// array[i]=[array[i+1],array[i+1]=array[i]][0];
//第三种用法 无需声明第三方变量
array[i]=array[i]^array[i+1];
array[i+1]=array[i]^array[i+1];
array[i]=array[i]^array[i+1];
}
}
}
console.log(array);
19.求最大值 和最小值 以及他们在数组中所占的位置
// 求最大值 和最小值 以及他们在数组中所占的位置
var arr = [23, 54, 76, 305, 67, 3];
var max = arr[0];
var min = arr[0];
var indexMax=0;
var indexMin=0;
for (var i=1; i<arr.length; i++) {
if (max<arr[i]) {
max=arr[i];
indexMax=i;
} else if (min>arr[i]) {
min=arr[i];
indexMin=i;
}
}
console.log(max,min);
console.log(indexMax,indexMin);
20.往数组中添加分隔符
//往数组中添加分隔符
var arr =[3, 3, 3, 3, 3, 3, 3, 3, 3];
var str = '|';
var array = arr[0];
for (var i =1; i <arr.length; i++) {
array +=str+ arr[i];
}
console.log(array);
21.把数组中的零去掉 存储到一个新的数组中
//把数组中的零去掉 存储到一个新的数组中
var array = [3, 5, 0, 5, 0 ,12, 09, 30, 5, 0, 23];
var newArrar = [];
for (var i =0; i<array.length; i++) {
if (array[i] !== 0) {
newArrar[newArrar.length]=array[i];
continue;
}
console.log(array[i]);
}
console.log(newArrar);
22.反向遍历数组 存储到一个新的数组中
//反向遍历数组 存储到一个新的数组中
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var newArray = [];
for (var i=array.length-1; i>=0; i--){
newArray[newArray.length]=array[i];
}
console.log(newArray);
23.函数求最大值
//函数求最大值
function maxnum(num1,num2) {
if (num1>num2) {
console.log(num1);
} else if (num1<num2) {
console.log(num2);
} else {
console.log(num1+"="+num2);
}
}
maxnum(21,21);
24.判断是否为质数 (只能被1和自身整除的数)
//判断是否为质数 (只能被1和自身整除的数)
function num(y) {
var boolean=true;
// 2 3 4 5 6 7 8
for (var i=2; i<y; i++) {
// 9/
if (y%i === 0) { //等于零 不是质数
boolean=false;
break;
}
}
if (boolean) {
console.log('是质素');
} else {
console.log('不是质素');
}
}
num(9);
25.求阶乘
// - 求阶乘
function num (y) {
var aa=1;
for (var i=1; i<=y; i++) {
aa*=i;
}
return aa;
}
var bb = num(5);
console.log(bb);
26.求任意个数的最大值 arguments
//求任意个数的最大值 arguments
function getMax() {
var max = arguments[0];
for (var i = 1; i<=arguments.length; i++) {
if (max<arguments[i]) {
max = arguments[i];
}
}
return max;
}
var aa = getMax(1,43,56,67,45,3,56,2);
console.log(aa);
27.求斐波那契数列 1 1 2 3 5 8 13 。。。
//求斐波那契数列 1 1 2 3 5 8 13 。。。
function shulie(n) {
var n1 = 1;
var n2 = 1;
var n3;
for(var i = 3; i<=n; i++) {
n3 = n1+n2;
n1 = n2;
n2 = n3;
}
return n3;
}
console.log(shulie(7));
28.反向输出一组数组 存到一个新的数组中
// 反向输出一组数组 存到一个新的数组中
function revese(array) {
var newArray=[];
for (var i = array.length-1; i>=0; i--) {
newArray[newArray.length]=array[i];
}
return newArray;
}
var aa = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(revese(aa));
//第二种方法 用arguments 遍历添加到一个新的数组中
// function revese() {
// var newArray=[];
// for (var i = arguments.length-1; i>=0; i--) {
// newArray[newArray.length]=arguments[i];
// }
// return newArray;
// }
// console.log(revese(1, 2, 3, 4, 5, 6, 7, 8, 9));
29.给定一组数 安从大到小的顺序重新排列
//给定一组数 安从大到小的顺序重新排列
function getNum(array) {
for (var i = 1; i<array.length; i++) {
var boolean = true;
for (var r = 0; r<array.length-i; r++) {
if (array[r]<array[r+1]) {
array[r] = [array[r+1],array[r+1]=array[r]][0];
boolean = false;
}
}
if (boolean) {
break;
}
}
return array;
}
// var aa = [1, 4, 3, 54, 676, 2, 5, 65, 23];
// console.log(getNum(aa));
// //判断平年或是闰年
function year(num){
var boolean = false;
if (num%4 === 0 && num % 100 !==0 || num % 400 === 0) {
boolean = true;
}
return boolean;
}
// console.log(year(2018));
31.判断 日期 在这一年中的第几天 要与上边的判断 是否为闰年连用
// //判断平年或是闰年
function year(num){
var boolean = false;
if (num%4 === 0 && num % 100 !==0 || num % 400 === 0) {
boolean = true;
}
return boolean;
}
// console.log(year(2018));
// //判断 日期 在这一年中的第几天 要与上边的判断 是否为闰年连用
function data(year1,month,day) {
var days = day;
for (var i =1 ; i<month; i++) {
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days += 31;
break;
case 4:
case 6:
case 9:
case 11:
days += 30;
break;
case 2:
if (year(year1)) {
days += 29;
} else {
days += 28;
}
break;
}
}
return days;
}
console.log(data(2018,3,2));
32.匿名函数 自调用的几种方法
//匿名函数 自调用的几种方法
//1
(function() {
console.log('我是自调用函数1');
})();
//2
!function() {
console.log('我是自调用函数2');
}();
//3
~function() {
console.log('我是自调用函数3');
}();
//4
+function() {
console.log('我是自调用函数4');
}();
//5
(function() {
console.log('我是自调用函数5');
}());
33.利用 arguments把一组数 按从小到大的顺序 排列
//利用 arguments把一组数 按从小到大的顺序 排列
function getNum() {
for(var i = 1; i<arguments.length; i++) {
var boolean = true;
for(var r = 0; r<arguments.length-i; r++) {
if (arguments[r]<arguments[r+1]) {
var npm = arguments[r+1];
arguments[r+1] = arguments[r];
arguments[r] = npm;
boolean = false;
}
}
if (boolean) {
break;
}
}
return arguments;
}
console.log(getNum(54, 6, 12, 98, 44, 8, 76));
34.创建对象的四种方式
//创建对象的四种方式 -----------------------创建对象的四种方式
//1 字面量方式
var hero = {
name: '黄忠',
age: 1800,
sex: '男',
attack: function(){
console.log(this.name+'今年有'+this.age+'岁了!!!');
}
}
console.log(hero.name);
hero.attack();
// 2
var hero = new Object()
hero.name = '黄忠';
hero.age = 1800;
hero.sex = '男';
hero.attack = function() {
console.log(this.name+'今年有'+this.age+'岁了!!!');
}
console.log(hero.name);
hero.attack();
//3 工厂方法
function hero(name,age,sex){
var hero = new Object()
hero.name = name;
hero.age = age;
hero.sex = sex;
hero.attack=function() {
console.log(this.name+'今年有'+this.age+'岁了!!!');
}
return hero;
}
var hero1 = hero('黄忠', 1200, '男');
console.log(hero1.name);
hero1.attack();
//4 自定义构造函数方法
function Hero(name, age, sex){
this.name = name;
this.age = age;
this.sex = sex;
this.attack = function(){
console.log(this.name+'今年有'+this.age+'岁了!!!');
}
}
var hero1 = new Hero('黄忠', 1800, '男');
console.log(hero1.name);
hero1.attack();
var min = 10;
var max = 100;
console.log(parseInt(Math.random()*(max-min)+min))
35.随机生成 两个数范围内的随机数
// 随机生成 两个数范围内的随机数----------------------------------------随机数
function random(max,min) {
return Math.floor(Math.random()*(max-min+1)+min);
}
//在窗口随机生成rjb颜色 与上面的生成随机数联用
function randomGRB(max,min) {
var rgb1 = random(max,min);
var rgb2 = random(max,min);
var rgb3 = random(max,min);
return 'rgb('+rgb1+','+rgb2+','+rgb3+')'
}
console.log(randomGRB(0,255));
function aa(){
document.body.style.background = randomGRB(0,255);
}
aa();
36.打印当前日期
//打印当前日期----------------------------------------------------------打印当前日期
function formatDate(d) {
if (!(d instanceof Date)) {
console.error('不是日期类型!');
return;
}
var year = d.getFullYear(),
month = d.getMonth()+1,
date = d.getDate(),
hours = d.getHours(),
minutes = d.getMinutes(),
seconds = d.getSeconds();
month = month<10?'0'+month:month;
date = date < 10?'0'+date:date;
hours = hours < 10?'0'+hours:hours;
minutes = minutes < 10?'0'+minutes:minutes;
seconds = seconds < 10?'0'+seconds:seconds;
return year+'-'+month+'-'+date+' '+hours+':'+minutes+':'+seconds;
}
var d = new Date();
console.log(formatDate(d)) ;
37.获取数组中所有出现 a 的索引
//获取数组中所有出现 a 的索引
var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'a', 'b'];
var index=-1;
do{
index = arr.indexOf('a',index+1);
if(index !== -1) {
console.log(index);
}
}while(index !== -1);
38.去重
// // 去重
var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'a', 'b'];
function clear(arr) {
var o={};
for(var i=0; i<arr.length;i++) {
var item=arr[i];
if(o[item]) {
o[item]++;
} else {
o[item]=1;
}
}
// console.log(o);
var newArray= [];
for (var key in o) {
if (o[key] === 1 ) {
newArray.push(key);
} else {
if (newArray.indexOf(key) === -1) {
newArray.push(key);
}
}
}
return newArray;
}
console.log(clear(arr));
39.数组排序
//数组排序
var arr = ['sddf', 'asdf', 'sdf', 'sdf', 'sdfgg', '2', '4356456'];
var num;
function paixu(arr){
//外层循环控制循环次数r
for (var r=1; r<arr.length; r++){
//内层循环控制遍历每个元素i
for (var i =0; i<arr.length-r; i++) {
//如果arr中每个i位置的值>i+1的值
//交换arr中i和i+1的值
if (arr[i]>arr[i+1]) {
// num=arr[i];
// arr[i]=arr[i+1];
// arr[i+1]=num;
arr[i]=[arr[i+1],arr[i+1]=arr[i]][0];//万能公式
}
}
}
}
paixu(arr);
console.log(String(arr));
40.定义一个十进制数字,将这个十进制数字转化为二进制
//定义一个十进制数字,将这个十进制数字转化为二进制
function dec2bin(dec){
//定义空数组bin
var bin = [];
//反复:只要dec>0
while (dec>0){
//将dec/2的余数压如bin中
bin.unshift(dec%2);
//将dec/2,取整后,再保存回dec中
dec = parseInt(dec/2);
}
//return bin无缝拼接的结果
return bin.join('');
}
var d = 90;
console.log(dec2bin(d), d.toString(2));
41."abcoefoxyozzopp"查找字符串中所有o出现的位置
// "abcoefoxyozzopp"查找字符串中所有o出现的位置
var sub = "abcoefoxyozzopp";
var index = -1;
do {
index = sub.indexOf('o',index+1);
if(index !== -1) {
console.log(index);
}
} while(index !== -1 );
42.把字符串中所有的o替换成!
// 把字符串中所有的o替换成!
var sub = "abcoefoxyozzopp";
var index = -1;
do {
index = sub.indexOf('o',index+1);
if (index !== -1) {
sub= sub.replace('o','!');
}
} while(index !== -1);
console.log(sub);
43.把字符串中的所有空白去掉’ abc xyz a 123 ’
// 把字符串中的所有空白去掉' abc xyz a 123 '
var sub = ' abc xyz a 123 ';
var arr = sub.split(' ');
var s = arr.join('');
console.log(s);
44.判断一个字符串中出现次数最多的字符,统计这个次数
// 判断一个字符串中出现次数最多的字符,统计这个次数
var arr = "abcoefoxyozzopp";
var o = [];
for (var i=0; i<arr.length; i++) {
var item = arr[i];
if(o[item]) {
o[item]++;
} else {
o[item]=1;
}
}
var max = 0;
for (var key in o) {
if(max<o[key]){
max=o[key];
var conte=key;
}
}
console.log(max);
console.log(conte);
45.获取url中?后面的内容,并转化成对象的形式。
// 获取url中?后面的内容,并转化成对象的形式。
var url = 'http://www.itheima.com/login?name=zs&age=18&a=1&b=2';
// 获取url后面的参数
function getParams(url) {
// 获取? 后面第一个字符的索引
var index = url.indexOf('?') + 1;
// url中?后面的字符串 name=zs&age=18&a=1&b=2
var params = url.substr(index);
// 使用& 切割字符串 ,返回一个数组
var arr = params.split('&');
console.log(arr);
var o = {};
// 数组中每一项的样子 key = value
for (var i = 0; i < arr.length; i++) {
var tmpArr = arr[i].split('=');
console.log(tmpArr);
var key = tmpArr[0];
var value = tmpArr[1];
o[key] = value;
// console.log(key);
}
return o;
}
var obj = getParams(url);
console.log(obj);
console.log(obj.name);
console.log(obj.age);
46.给定一个字符串如:“abaasdffggghhjjkkgfddsssss3444343”问题如下:
// 给定一个字符串如:“abaasdffggghhjjkkgfddsssss3444343”问题如下:
var array = 'abaasdffggghhjjkkgfddsssss3444343';
// alert("(g替换为22,ss替换为b)\n"+array.replace(/(g)|(ss)/g,function(m,p1,p2){
// if(p1)return "22";
// if(p2)return "b";
// }));//4
// 1、 字符串的长度
console.log(array.length);
// 2、 取出指定位置的字符,如:0,3,5,9等
function str(arr) {
var sum=[];
for(var i=0;i<arr.length;i++) {
sum += (array.charAt(arr[i]))
}
return sum ;
}
var aa = [0, 3, 5, 9];
console.log(str(aa)) ;
// 3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等
function aa1(arr){
for(var i =0;i<arr1.length;i++) {
if(array.indexOf(arr1[i]) !== -1){
console.log('数组中有'+arr[i]+'的存在');
} else {
console.log('数组中没有'+arr[i]+'的存在');
}
}
}
var arr1 = ['i', 'c' , 'b', 'k', '5', '44'];
aa1(arr1);
// 4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法
var arr = ['g','ss'];
var str = ['22','b'];
var index = -1;
function aa2(arr,str) {
for(var i =0;i<arr.length;i++) {
do{
index=array.indexOf(arr[i],index+1)
if(index !== -1){
// array.indexOf(arr[i])=str[i];
console.log(index);
}
}while(index !== -1);
}
}
aa2(arr,str);
// 5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
function aaa3(stear,end) {
console.log(array.slice(stear,end)+1);
}
aaa3(3,5);
// 6、 找出以上字符串中出现次数最多的字符和出现的次数
function clear(arr) {
var o =[];
for(var i=0; i<arr.length; i++) {
var item=arr[i];
if(o[item]){
o[item]++;
} else {
o[item]=1;
}
}
var num = 0;
for(var key in o) {
if(num<o[key]) {
num=o[key];
var str=key;
}
}
console.log(num);
console.log(str);
}
clear(array);
// 7、 遍历字符串,并将遍历出的字符两头添加符号“@”输出至当前的文档页面。
var arr='';
for(var i=0; i<array.length; i++){
if(i==0){
arr='@'+array[i];
} else {
arr = arr+array[i];
}
}
document.write(arr.concat('@'));
// 第二种拼接方法
// var aa = array.split('')
// aa.push('@');
// aa.unshift('@');
// console.log(aa.join('')) ;
47.如下字符串’get-element-by-id’修改为驼峰表示法’getElementById’
// 如下字符串'get-element-by-id'修改为驼峰表示法'getElementById'
var array = 'get-element-by-id';
function ceart(array) {
var split = array.split('-');
// console.log(split); // ["get", "element", "by", "id"]
for(var i=1; i<split.length; i++) {
var a = split[i].slice(0,1).toUpperCase();
// console.log(split[i].slice(0,1).toUpperCase());// E B I
var b = split[i].slice(1);
// console.log(split[i].slice(1));// lement y d
split[i] = a+b;
}
return split;
}
console.log(ceart(array).join('')) ;
48.截取字符串 然后拼接的成数组
//截取字符串 然后拼接的成数组
var url = 'http://www.itheima.com/login?name=zs&age=18&a=1&b=2';
function array1(url) {
var str = url.substr(url.indexOf('?')+1);
var arr = str.split('&');
// console.log(arr);
var o={};
for (var i=0; i<arr.length; i++) {
var aa = arr[i].split('=');
var key = aa[0];
var value = aa[1];
o[key]=value;
// console.log(aa);
}
return o;
}
console.log(array1(url));
49.去除字符串前面的数字
var str = '34563478345643消息中心wer'
var num = parseInt(str)
var aa = str.replace(num,'')
console.log(aa)//消息中心wer