我想在函数中不使用console.log()来构建乘法表。我目前在分割价值方面遇到了困难。整个函数必须是纯JS。不适用于DOM。我想在终端上打印输出。
function multiplicationTable (maxValue){
var array = []
for (var i = 1; i <= maxValue; i++)
{
for (var j = 1; j <= maxValue; j++)
{
if (j >= 1 && i >= 1)
{
array.push(j*i)
}
}
}
var m = array.join()
return m;
}
console.log(multiplicationTable(3));
当前产出:1,2,3,2,4,6,3,6,9
必需输出:
1 2 3
2 4 6
3 6 9
我觉得我必须使用.split()或.splice()。我无法确定添加值的位置。
答案 0 :(得分:1)
这是你的乘法表。它在浏览器开发控制台中受支持,但不作为此处的代码段。将其复制并粘贴到浏览器控制台中。
let a = 0;
let b = 0;
const len = 4;
let output = [];
for(a=0;a<len;a++){
output.push([]);
for(b=0;b<len;b++){
output[a].push(`${a} x ${b} = ${a*b}`);
}
}
console.table(output);
答案 1 :(得分:0)
我将构建并返回一个多维数组,而不是加入数组。然后,您可以使用forEach
加入并在通话时记录。像,
function multiplicationTable(maxValue) {
var array = []
for (var i = 1; i <= maxValue; i++) {
var t = []
for (var j = 1; j <= maxValue; j++) {
t.push(j * i)
}
array.push(t)
}
return array
}
multiplicationTable(3).forEach(x => console.log(x.join(" ")));
答案 2 :(得分:0)
返回一个对象,然后使用函数forEach
构建所需的输出。
function multiplicationTable(maxValue) {
var result = {}
for (var i = 0; i < maxValue; i++) {
for (var j = 0; j < maxValue; j++) {
result[`${j + 1} ${i + 1}`] = (j + 1) * (i + 1);
}
}
return result;
}
var maxValue = 3;
var arr = multiplicationTable(maxValue)
Object.keys(arr).forEach((k) => {
console.log(k, arr[k]);
});
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 3 :(得分:0)
考虑为i的每个循环创建一个新数组,然后将它们存储在原始数组中。
for (var i = 0; i < maxValue; i++) {
array[i] = [];
for (var j = 0; j < maxValue; j++) {
array[i].push((j+1)*(i+1))
}
}
返回类型将是一个数组数组,您必须将其循环到控制台日志。
var multTable = multiplicationTable(3);
for (i = 0; i < multTable.length; i++) {
console.log(multTable[i].join(" ");
}
答案 4 :(得分:0)
function multiplicationTable(maxValue) {
var array = []
for (var i = 1; i <= maxValue; i++) {
var t = []
for (var j = 1; j <= maxValue; j++) {
t.push(j * i)
}
array.push(t)
}
return array
}
multiplicationTable(3).forEach(x => console.log(x.join(" ")));
&#13;