All interview cases of front-end js basic algorithm 1
- 1 Introduction
- 2.Case
-
- 2.1 Print n stars in one line
- 2.2 Print stars in n rows and n columns
- 2.3 Print inverted triangle
- 2.4 Print the multiplication table
- 2.5 Sum and average
- 2.6 Find the maximum value
- 2.7 Convert array to string (string concatenation)
- 2.8 Add elements to an empty array
- 2.9 Filter out numbers greater than 10 (add to new array)
- 3.0 Delete elements in array
- 3.0 Flip array
- 3.1 Bubble sort
1 Introduction
Basic algorithms are very important when entering a big factory!!!
1.while: judge first and then loop
2.do while: execute once first, then judge
3.continue: jump out of this (current) loop directly
4.break: jump out of the entire loop directly
2.Case
2.1 Print n stars in one line
var num = prompt("请输入星星的个数")
var str = ''
for (var i = 1; i <= num; i++) {
str = str + '*'
}
console.log(str);
2.2 Print stars in n rows and n columns
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 Print inverted triangle
var str = ''
for (var i = 1; i <= 10; i++) {
for (var j = i; j <= 10; j++) {
str += '*'
}
str += '\n'
}
console.log(str);
2.4 Print the multiplication table
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 Sum and average
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 Find the maximum value
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 Convert array to string (string concatenation)
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 Add elements to an empty array
var str = []
for (var i = 0; i < 10; i++) {
str[i] = i + 1
}
console.log(str);
2.9 Filter out numbers greater than 10 (add to new array)
//这里考虑到的问题就是两个不一样的数组一定要用不同的变量名来表示索引
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 Delete elements in array
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 Flip array
//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 Bubble sort
// 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);