前端js基础算法的所有面试案例1
1.介绍
进大厂基础算法都很重要!!!
1.while:先判断后循环
2.do while:先执行一次,再判断
3.continue:直接跳出本次(当前次)循环
4.break:直接跳出整个循环
2.案例
2.1 一行打印n个星星
var num = prompt("请输入星星的个数")
var str = ''
for (var i = 1; i <= num; i++) {
str = str + '*'
}
console.log(str);
2.2 打印n行n列的星星
var rows = prompt("请输入行数") //负责外面的五层
var cols = prompt("请输入列数") //负责里面的个数
var str = ''
for (var i = 1; i <= rows; i++) {
for (var j = 1; j <= cols; j++) {
str = str + '*'
}
str += '\n'
}
console.log(str);
2.3 打印倒三角
var str = ''
for (var i = 1; i <= 10; i++) {
for (var j = i; j <= 10; j++) {
str += '*'
}
str += '\n'
}
console.log(str);
2.4 打印九九乘法表
var str = ''
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
str += i + '*' + j + '=' + i * j + '\t'
}
str += '\n'
}
console.log(str);
2.5 求和和平均值
var arr=[1,2,3,4];
var sum=0;
var average=0;
for(var i=0;i<arr.length;i++){
sum+=arr[i];
}
average=sum/arr.length;
console.log(sum,average);
2.6 求最大值
var arr=[21,12,3,47]
var max=0
for(var i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i]
}
}
console.log(max)
2.7 数组转换为字符串(字符串拼接)
var arr = ['red', 'green', 'blue', 'green']
var str = ''
var step = '|'
for (var i = 0; i < arr.length; i++) {
// console.log(arr[i]);
str += arr[i] + step
}
console.log(str);
2.8 给空数组添加元素
var str = []
for (var i = 0; i < 10; i++) {
str[i] = i + 1
}
console.log(str);
2.9 筛选出大于10的数(添加到新的数组)
//这里考虑到的问题就是两个不一样的数组一定要用不同的变量名来表示索引
var str = [12, 123, 2312, 3, 1, 32, 45, 2, 4, 6]
var newarr = []
var j = 0
for (var i = 0; i < str.length; i++) {
if (str[i] >= 10) {
newarr[j] = str[i]
j++
}
}
console.log(newarr);
var str = [12, 123, 2312, 3, 1, 32, 45, 2, 4, 6]
var newarr = []
for (var i = 0; i < str.length; i++) {
if (str[i] >= 10) {
newarr[newarr.length] = str[i]
}
}
console.log(newarr);
3.0 删除数组中的元素
var str = [12, 123, 2312, 0, 1, 32, 45, 0, 0, 0]
var newarr = []
for (var i = 0; i < str.length; i++) {
if (str[i] != 0) {
newarr[newarr.length] = str[i]
}
}
console.log(newarr);
3.0 翻转数组
//arr数组最后一个索引开始赋值给str第一个索引,依次循环
var arr = ['red', 'green', 'blue', 'green']
var str = []
for (var i = arr.length - 1; i >= 0; i--) {
str[str.length] = arr[i]
}
console.log(str);
3.1冒泡排序
// 1.从小到大
var arr = [12, 231, 12, 2, 5, 1, 10000]
// 外层循环管趟数
for (var i = 0; i < arr.length; i++) {
// 内层循环:每一趟的交换次数,第一次是arr.length-1,第二次arr.length-2,.......
for (var j = 0; j < arr.length - 1 - i; j++) {
// 通过temp进行交换
if (arr[j] > arr[j + 1]) {
temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
console.log(arr);
// 2.从大到小
var arr = [12, 231, 12, 2, 5, 1, 10000]
// 外层循环管趟数
for (var i = 0; i < arr.length; i++) {
// 内层循环:每一趟的交换次数,第一次是arr.length-1,第二次arr.length-2,.......
for (var j = 0; j < arr.length - 1 - i; j++) {
// 通过temp进行交换
if (arr[j] < arr[j + 1]) {
temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
console.log(arr);