我正在尝试创建此程序以提示用户输入两个单词,然后在一行上打印出两个单词。单词将被足够的点分隔,以便总行数为30.我已经尝试了这个并且似乎无法得到它。
<html>
<head>
<title>Lenth of 30</title>
<script type="text/javascript">
//Program: Lenth of 30
//Purpose: The words will be separated by enough dots so that the total line length is 30:
//Date last modified: 4/11/12
var firstword = ""
var secondword = ""
firstword = prompt("Please enter the first word.")
secondword = prompt("Please enter the second word.")
document.write(firstword + secondword)
</script>
</head>
<body>
</form>
</body>
</html>
一个例子:
输入第一个字:
龟
输入第二个字
153
(程序将打印出以下内容)
龟.................... 153
答案 0 :(得分:3)
这是一个通用解决方案,向您展示如何执行此操作:
function dotPad(part1, part2, totalLength) {
// defaults to a total length of 30
var string = part1 + part2,
dots = Array((totalLength || 30) + 1).join('.');
return part1 + dots.slice(string.length) + part2;
}
按如下方式使用:
dotPad('foo', 'bar'); // 'foo........................bar'
在你的情况下:
dotPad(firstword, secondword);
这是一个非常简单的解决方案 - 如果需要,请验证输入字符串的连接形式是否短于length
个字符。
答案 1 :(得分:1)
您需要计算所需的时间段。
var enteredLength = firstword.length + secondword.length;
var dotCount = 30 - enteredLength;
var dots = "";
for(var i = 0; i < dotCount; i++) dots += '.';
你可以从那里拿走......
答案 2 :(得分:0)
从30减去第一个单词的长度和第二个单词的长度,并在for循环中打印出多个点。
答案 3 :(得分:0)
您可以使用length
属性来确定每个字符串的长度,然后计算您需要添加的.
的数量。
答案 4 :(得分:0)
您可以使用一些简单的数学计算得到点数。从30开始减去每个字长。
var dotLen = 30 - firstword.length - secondword.length;
document.write( firstword );
while ( dotLen-- ) {
document.write( "." );
}
document.write( secondword );
编辑:我实际上更喜欢Mathias的解决方案。但你可以更简单:
document.write( firstword + Array( 31 - firstword.length - secondword.length ).join( '.' ) + secondword );