我想创建一个函数,该函数将生成一个包含标题行和标题列的乘法表。
函数必须有3个参数:
col
-列中数字的(整数(起始值row
-行中数字的(整数(起始值size
-表的(整数(大小
调用table(1,3,4)
必须给出以下结果:
[
[null, 1, 2, 3, 4],
[3, 3, 6, 9, 12],
[4, 4, 8, 12, 16],
[5, 5, 10, 15, 20],
[6, 6, 12, 18, 24]
]
注意:
- 标题行中的数字从
1
(第一个参数(开始 - 第一列下的数字从
3
开始(第二个参数( - 该表包含
4
(第三个参数(非标题行和列,总大小为5
行和列
到目前为止,我有这段代码(如下(,但我如何将值放在里面?
let table = new Array(++size);
for(let i = 0; i < table.length; i++) {
table[i] = new Array(size);
}
还有更多的要求,但我不知道如何实现。
table[0]
用列标题描述行table[0][0]
总是null
——这将对应于表左上角的一个空单元格table[i][0]
描述行标题(其中i
是任何索引(table[0][j]
描述列标题(其中j
是任何索引(table[0][1]
等于col
table[1][0]
等于row
table[i][j]
等于两个数字的乘积:table[i][0]
和table[0][j]
function table(col_start, row_start, size){
let table = new Array(size+1);
for(let i = 0; i < table.length; i++) {
table[i] = new Array(size+1);
}
table[0][0]=null
for(let i = 1; i < size+1; i++) {
table[0][i] = col_start+i-1
}
for(let i = 1; i < size+1; i++) {
table[i][0] = row_start+i-1
}
for(let i = 1; i < size+1; i++) {
for(let j = 1; j < size+1; j++) {
table[i][j] = table[0][j]*table[i][0]
}
}
return table
}```
首先,JavaScript不提供多维数组。如果你想制作一个——下面是你的方法(它不会是多维数组,但你可以让它像它一样工作(。
function multiDimensional(r,c){ // r = number of rows, c = columns
const arr = Array.from({length : 5}, ()=>[]); //creates an array with 5 empty arrays in it.
let count = 0;
while(count !== r){ //count is index of the empty arrays inside the array.
for(let i = 0; i < r*c; i++){ // r*c is size of array.
arr[count].push(i); //pushing values inside subarrays. e.g. arr[0].push(0)
if(i !== 0 && (i+1) % 5 === 0){ //incrementing count after every 5 loop repetitions
count++;
}
}
}
console.log(arr[1][0]) // now u can use arr[a][b] notation.
return arr;
}
multiDimensional(5,5);
所需的表看起来是这样的(不要忘记数组从0开始,所以行1实际上是行0,列也是如此(-
arr = [
[0, 1, 2, 3, 4] // place value = 00, 01, 02, 03, 04 or simply r0c0, r0c1 etc
[5, 6, 7, 8, 9] // place value = 10, 11, 12, 13, 14
[10, 11, 12, 13, 14] // place value = 20, 21, 22, 23, 24
[15, 16, 17, 18, 19] // place value = 30, 31, 32, 33, 34
[20, 21, 22, 23, 24] // place value = 40, 41, 42, 43 44
]