尝试将字母、数字和符号编译成旋转字符串



HTML

因此,我正在尝试拥有一个重复控制台.log它可以更改数字以显示任意数量的数字中的每个可能组合。我做了一组变量来定义我想要使用的数字,并尝试创建一个使用字母数组"console.log(s[0]("来使用字符串中的每个字符的函数。但是每当我尝试运行代码时,它都会将 b 记录到控制台一次并停止。代码:

            function start()
            {
                var inputDigit = document.getElementById("inputDigit").value;
                var lowerCaseAlpabet = "abcdefghijklmnopqrstuvwxyz";
                var upperCaseAlpabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                var symbols = "*&^%$#@!()<>?/.,|}{][-_=+~`"
                var Numbers = "1234567890"
                var all = lowerCaseAlpabet+upperCaseAlpabet+symbols+Numbers
                console.log(all)
                var allLength = all.length - 1

                var digit = 0
                digit1(all,allLength,digit)
                function digit1(all,allLength,zero){
                    if (digit < allLength) {
                            var finalValue = all[digit]
                            var digit = digit + 1
                            return finalValue
                        } 
                    return finalValue
                    var digit = digit + 1
                    console.log(finalValue)
                    digit1(all,allLength,digit)
                }

            }

整个代码文档:

<!DOCTYPE html>
				<html>
				<head>
				<!--<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>-->
				<title>Passcode Compiler</title>
				<h1>Welcome to the Passcode Compiler</h1>
				<h2>Please fill in the blank below with the amount of digits that you need</h2>
				</head>
				<body>
				<script>
				</script>
				<br> <input type="text" id="inputDigit">compiling length</input><br><!--This takes the year input-->
				<button onclick="start()">Submit</button><br><!--This submits the input values above to the javascript code below-->
				<script>
				function start()
				{
				var inputDigit = document.getElementById("inputDigit").value;
				var lowerCaseAlpabet = "abcdefghijklmnopqrstuvwxyz";
				var upperCaseAlpabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
				var symbols = "*&^%$#@!()<>?/.,|}{][-_=+~`"
				var Numbers = "1234567890"
				var all = lowerCaseAlpabet+upperCaseAlpabet+symbols+Numbers
				console.log(all)
				var allLength = all.length - 1
				var digit = 0
				digit1(all,allLength,digit)
				function digit1(all,allLength,zero){
				if (digit < allLength) {
				var finalValue = all[digit]
				var digit = digit + 1
				return finalValue
				} 
				return finalValue
				var digit = digit + 1
				console.log(finalValue)
				digit1(all,allLength,digit)
				}
				}
				</script>
				<h4>
				</h4>	
				</body>
				</html>
				</!doctype>
				<!--setTimeout(function(){/*YourCode*/},1000);
关于如何解决这个问题的任何想法?请记住,我没有使输入变得重要,因此无论输入如何,它都应该有效。

返回后的代码将不会执行:

return finalValue
var digit = digit + 1
console.log(finalValue)
digit1(all,allLength,digit)

在此代码段中,返回后的任何行都不会执行,因为函数在遇到 return 语句时退出。

此外,如果要递增函数外部定义的数字,则不能再次将其声明为函数内部的var。所以,你会想要改变你的线路

var digit = digit + 1;

digit++;

因此,我将从调整您的代码开始以考虑这些。

最新更新