Javascript - 行总计

时间:2012-04-11 13:17:58

标签: javascript

我正在尝试创建此程序以提示用户输入两个单词,然后在一行上打印出两个单词。单词将被足够的点分隔,以便总行数为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

5 个答案:

答案 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 );