Reputation: 621
I need to create java script program who print mirror numbers triangle from N. I tested some ways and get the 50% from task:
let n = 5;
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
console.log(number += i);
}
}
generatePyramid(n);
This code print triangle only from 1 to 5. How to print triangle from 5 to 1?
Also my print need to be with space between 1 2 3 4 5... not 12345.
I have similar code from java with array, but can't transform it to JS: https://pastebin.com/9dqqE8J6
This is the final output:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
Upvotes: 0
Views: 747
Reputation: 214
<script>
let n = 5;
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
for (let j = 1; j <= i; j += 1)
document.writeln(j+" ");
document.writeln("<br>")
}
for (let i = 4; i >= 1; i -= 1) {
for (let j = 1; j <= i; j += 1)
document.writeln(j+" ");
document.writeln("<br>")
}
}
generatePyramid(n);
</script>
Try This using the same code but i have taken another loop named j
Upvotes: 2
Reputation: 370989
One option would be to add a while
loop that slices off characters from the number
string until it's empty:
let n = 5;
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
console.log(number += i);
}
while (number.length > 1) {
number = number.slice(0, number.length - 1);
console.log(number);
}
}
generatePyramid(n);
To add spaces as well, one option is:
let n = 5;
const log = str => console.log(str.replace(/.(?!$)/g, '$& '))
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
log(number += i);
}
while (number.length > 1) {
number = number.slice(0, number.length - 1);
log(number);
}
}
generatePyramid(n);
Upvotes: 3