JS实现遍历弹幕数组和判断水王数

  • Post author:
  • Post category:其他




1、遍历弹幕数组



利用数组和定时器实现遍历弹幕



代码:

function print_TM(){
		let tm = new Array("弹幕1","弹幕2","弹幕3")
		<!-- 用于显示内容的span标签 -->
		let print_span = document.getElementById("print")
		let index = 0
		print_span.innerHTML="弹幕开始"
		setInterval(() => {
		<--
			print_span.innerHTML=tm[index]
			if(index < tm.length){
		 		index += 1
		 	}
		 	else{
		 		print_span.innerText="再来一次!"
		 		<!-- print_span.innerHTML也可以达到这种效果但是这个要慎用,因为这个会改变文件内容,比如加一个标签所以不安全容易被攻击。 -->
		 		index = 0
			}
		},2000)
	}



2、判断一个数组是否存在水王数



水王数:如果数组中的某个字符个数占总数的一半以上那么这个字符就是水王数



解法一:利用charAt()把数组中的每个字符都遍历出来定义两个数组一个用来记录字符,一个用来记录个数,判断一数组中有没有这个字符如果没有就添加到一数组并且二数组也相应添加一个元素:1,如果存在那么arr2对应下标的元素加1



例 str=“aba”



arr1 = new Array()



arr2 = new Array()



第一次 a 不属于 arr1 那么arr1添加a arr1 = {a} arr2 = {1}



第二次 b 不属于 arr1 那么arr1添加b arr1 = {a,b} arr2 = {1,1}



第三次 a 属于 arr1 那么arr2对应下标的元素加1 arr1 = {a,b} arr2 = {2,1}



然后判断次数超过一半的返回



解法二:利用Object对象来实现利用 key:value 来记录对应的字符和次数,原理和解法一一致



代码:

function shuiwang(){
		let str = document.getElementById("put").value
		let obj = {};
		for (let i =0 ; i < str.length; i++) {
			if(obj[str.charAt(i)] == undefined)
			{
				obj[str.charAt(i)] = 1
			}
			else{
				obj[str.charAt(i)] += 1
			}
		}
		for(let key of Object.keys(obj))
		{
			if(obj[key] >= str.length / 2){
				return key
			}
		}
		return null
	}
	function getshuiwang()
	{
		if(shuiwang() != null){
		alert(`${shuiwang()}是一个水王数`)
		}
		else
		{
		alert("没有水王数!")
		}
	}



版权声明:本文为xt2106119337原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。