我的任務是撰寫一個程式,為給定的變數 n 創建一個乘法表。結果需要保存到二維陣列中。在控制臺中,我需要以適當的資料格式顯示整個表格(如下所示)。我從 Javascript 開始,只知道回圈和陣列,我還沒有學習函式,所以我需要一些非常基本的解決方案。結果應該是這樣的:

這是我到目前為止撰寫的代碼,我不知道下一步該做什么:
const n = 3;
const calc = []
for (let i = 1; i <= n; i ) {
for (let j = 1; j <= n; j ) {
calc.push(i " * " j " = " (i * j));
}
console.log(calc)
}
uj5u.com熱心網友回復:
從您提供的代碼來看,您似乎還沒有理解二維陣列的真正含義。按照您的操作方式,所有內容都被塞入一個 1d 陣列中。
您可能會將螢屏上的像素視為二維陣列的一部分。第一個陣列包含所有水平線。水平線包含像素。
所以..讓我們先專注于那部分。
let result = [];
for (var y=0; y<n; y )
{
result.push( [] );
for (var x=0; x<n; x )
{
result[y].push( (x 1) * (y 1) );
}
}
首先,我們創建一個結果陣列,然后為表中的每一行添加一個包含列的陣列,然后為該行中的每一列添加值。
接下來,我們只需遍歷該表并將值轉換為原始方程。在創建相同大小的表之前,我們首先確定陣列的維度。
function printTable( tbl )
{
let nRows = tbl.length;
let nCols = tbl[0].length;
for (var y=0; y<nRows; y )
{
let rowStr = '';
for (var x=0; x<nCols; x )
{
if (x!=0) rowStr = " | ";
rowStr = `${y 1} x ${x 1} = ${tbl[y][x]}`;
}
console.log(rowStr);
}
}
綜上所述,我提供了以下代碼。是的,我知道你還沒有使用函式——但你仍然可以看到重要的概念。您可以更改它,以便保存表中每個條目的整個方程式,而不僅僅是答案。
window.addEventListener('load', init, false);
function init()
{
let result = makeMultTable(3);
printTable(result);
}
function makeMultTable(n)
{
let result = [];
for (var y=0; y<n; y )
{
result.push( [] );
for (var x=0; x<n; x )
{
result[y].push( (x 1) * (y 1) );
}
}
return result;
}
function printTable( tbl )
{
let nRows = tbl.length;
let nCols = tbl[0].length;
for (var y=0; y<nRows; y )
{
let rowStr = '';
for (var x=0; x<nCols; x )
{
if (x!=0) rowStr = " | ";
rowStr = `${y 1} x ${x 1} = ${tbl[y][x]}`;
}
console.log(rowStr);
}
}
uj5u.com熱心網友回復:
二維陣列中表的乘法
函式名稱:乘數
語法multiplyNumber(n)
- n要傳遞給函式以創建該數字的表的數字。
片段
function multiplyNumber(n){
let table = [];
let data = [];
for (var i = 1; i <= n; i ){
for (var j = 1; j <= n; j ){
data.push(`${i} * ${j} = ${i * j}`);
}
table.push(data); // pushing data to table.
data = []; //Resetting data array to store new data each time.
}
return table;
}
var result = multiplyNumber(3);
console.log(result);
uj5u.com熱心網友回復:
這是將這些乘法放入二維陣列的簡短版本:
const arr=[...Array(4)].map((_,i)=>i 1),
arr2=arr.map(i=>arr.map(j=>`${i}*${j}=${i*j}`));
console.log(arr2);
uj5u.com熱心網友回復:
您需要calc為每一行重置。我將calc的變數宣告移到第一個回圈中。
const n = 3;
for (let i = 1; i <= n; i ) {
const calc = [];
for (let j = 1; j <= n; j ) {
calc.push(i " * " j " = " (i * j));
}
console.log(calc)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475941.html
標籤:javascript 数组 循环
上一篇:如何有條件地定義函式
