我正在尝试使用以下代码:
图案(4):
1
1*2
1**3
1***4
function pattern(n){
var output = "";
for (var i = 0; i < n; i++) {
output[i] = "1" + (Array(n-1).join("*")).toString() + n.toString();
}
return output;
}
这就是我目前所拥有的。当我运行代码时,我得到一个空白的回报。有人能指出我在正确的方向吗?谢谢!
示例测试类:Test.assertEquals(pattern(3),“1 \ n1 * 2 \ n1 ** 3”);
答案 0 :(得分:2)
output
可以是一个数组,您可以将新项目推送到它上面。
function pattern(n){
var output = [];
for (var i = 0; i < n; i++) {
output.push("1" + (Array(n-1).join("*")).toString() + n.toString());
}
return output;
}
该函数的输出将是一个数组,您应该能够使用新行重新连接在一起
var output = pattern(4);
console.log(output.join("\n"));
答案 1 :(得分:2)
有几点需要注意:
正如@PatrickEvans所说,JS中的字符串是不可变的,因此尝试修改字符串中的字符元素是行不通的。
增加星号*
的模式和每个字符串末尾的数字不需要静态n
,而是递增i
。
虽然我建议使用后者,但有两种方法可以做到。
字符串连接:
function pattern(n){
var output = "";
for (var i = 0; i < n; i++) {
if (!i) output = "1";
else output += "\n1" + (Array(i+1).join("*")).toString() + (i+1).toString();
}
return output;
}
console.log(pattern(4));
数组加入:
function pattern(n) {
var output = [];
for (var i = 0; i < n; i++) {
if (!i) output.push("1");
else output.push("1" + (Array(i+1).join("*")).toString() + (i+1).toString());
// ES6: else output.push(`1${'*'.repeat(i)}${i+1}`);
}
return output.join('\n');
}
console.log(pattern(4));
答案 2 :(得分:2)
我做了一些改动并略微修改了逻辑。
i =1
而不是i=0
开始迭代。我们需要第一个值为1
i==1
时,输出将仅为1
"1" + (Array(i).join("*")).toString() + i.toString());
Array(i).join('*')
将*
,i
次&amp; i.toString()
1
(Array(n-1).join("*")).toString() + n.toString();
在您的代码中,您是n
我相信它总是1**n
作为最后一位数。所以每次输出都是function pattern(n){
var output = [];
for (var i = 1; i <= n; i++) {
if(i==1){
output.push("1")
}
else if(i>1){
output.push("1" + (Array(i).join("*")).toString() + i.toString());
}
}
return output;
}
var m = pattern(5);
console.log(m.join('\n'));
希望此代码段有用
Server [localhost]:
Database [postgres]:
Port [5433]:
Username [postgres]:
psql (9.2.17)
WARNING: Console code page (850) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=# createdb gps_heatmap
postgres-# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------------------+---------------------+-----------------------
database4 | postgres | UTF8 | English_Canada.1252 | English_Canada.1252 |
postgres | postgres | UTF8 | English_Canada.1252 | English_Canada.1252 |
template0 | postgres | UTF8 | English_Canada.1252 | English_Canada.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | English_Canada.1252 | English_Canada.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres-#
选中此jsfiddle