前端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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值