防抖既然已知晓 节流那就不可少

212 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情

目录

今日题

  1. 题目
  2. 分析 昨日题
  3. 题目
  4. 答案
  5. 解析 结语

今日题

题目

上一次我们学习js数据请求中的防抖,这一次我们继续来学习js中另外一个数据请求的小技巧---节流 节流的目的同样是为了减轻服务器的压力但是与防抖不同的是防抖没有时间因素的干涉。而节流就像水管中的节流阀一样,会把一段时间内的一次请求存蓄起来。在一个时间段内释放。

分析

节流原理:规定时间内只执行一次,它与防抖的最大区别是,即使再高频的动作在规定的时间内都会执行一次。 如节流中提到的输入内容进行搜索的问题,使用防抖如果输入特别频繁,则不会发送请求,只有等输入停止时才会发送请求 而节流则在规定的时间内都会发送一次请求 js代码。

同样可以用定时器实现哦!

昨日题

题目

实现一个函数getMaxSubArr找出数组中连续子数组的最大和并返回

答案

const arr = [1, 3, -2, 4, 7, -9, 6]
function getMaxSubArr(arr){
	let maxValue=null	
	for(let i=0;i<arr.length;i++){
		for(let j=i+1;j<arr.length;j++){
			if(maxValue==null){
				maxValue=arr[i]+arr[j]
			}else if(maxValue<arr[i]+arr[j]){
				maxValue=arr[i]+arr[j]
			}
		}
	}
	return maxValue
}
const res = getMaxSubArr(arr)
console.log(res)	//13

解析

这是一道非常经典的算法题。 其背后的数学原理是获取到将每一项的和,之后再将和做比对。 如果用笔算的话,这道题是首先第一项加,第一项加第三项,一直加到最后一项。之后第二项加第三项直到最后一项。之后第三项加第四项,直到最后一项。 我们可以发现内层循环中的加数的初值永远会比外层循环中的加速的初值小一。

这样我们就可以确定内层循环中的加数为i,外层循环中的加数为i+1并算出每一次的和 之后我们将第一次算出来的和保存到maxValue中。 并在此后的每一次循环中将和与maxValue相比对。 如果前者大 则替换maxValue。

最后我们return maxValue。

结语

此文章已收录至《JavaScript每日一题》专栏,如果你对本专栏有任何建议,欢迎反馈。如果你对此文章中的题目还有不懂的地方,那么请在评论区留言与大家一起讨论吧。
创作不易,少年,就请留个赞再走吧!