Попытка создать многомерный массив в функции - PullRequest
0 голосов
/ 19 апреля 2019

В настоящее время я пытаюсь взять 3 отдельных ввода и преобразовать их в многомерный массив.

Я знаю, что большинство вводимых пользователем данных - 8, однако мой текущий код печатает пустые массивы.Я ищу способ динамически создавать то, что я кодировал, чтобы избежать этой проблемы.Ниже приведена копия созданной мной функции.


a = 'Hi' 
b = 878
c = 654

function exitToTable(a, b, c) {
            for (var i = 0; i < 8; i++) {
                tester[i] = new Array(8);
            }

            tester[0][0] = a[0];
            tester[0][1] = b[0];
            tester[0][2] = c[0];

            tester[1][0] = a[1];
            tester[1][1] = b[1];
            tester[1][2] = c[1];

            tester[2][0] = a[2];
            tester[2][1] = b[2];
            tester[2][2] = c[2];

            tester[3][0] = a[3];
            tester[3][1] = b[3];
            tester[3][2] = c[3];

            tester[4][0] = a[4];
            tester[4][1] = b[4];
            tester[4][2] = c[4];

            tester[5][0] = a[5];
            tester[5][1] = b[5];
            tester[5][2] = c[5];

            tester[6][0] = a[6];
            tester[6][1] = b[6];
            tester[6][2] = c[6];

            tester[7][0] = a[7];
            tester[7][1] = b[7];
            tester[7][2] = c[7];

            for (var i = 0; i < 8; i++) {
                for (var j = 0; j < 3; j++) {
                    document.write(tester[i][j] + '&emsp;');
                }
                document.write('</br>');
            }

        }

Я надеюсь, что массив распечатается следующим образом, если a = 'Hi' b = 878 c = 654

Однако обратите вниманиечто 'a', b 'и' c '- это массивы, хранящие свои собственные данные.Каждый элемент в a будет строкой, а каждый элемент в b и c - целыми числами.

Hi 878 654

Hi 878 654

Hi 878 654

ETC ....

Ответы [ 3 ]

0 голосов
/ 19 апреля 2019

var arr_a = [], 
    arr_b = [], 
    arr_c = [];

for (var i = 0; i <= 7; i++) {
  arr_a[i] = 'Hi';
  arr_b[i] = 878;
  arr_c[i] = 654; 
}


exitToTable(arr_a, arr_b, arr_c);

function exitToTable(a, b, c) {
            let tester = [];

            tester[0] = [];
            tester[0][0] = a[0];
            tester[0][1] = b[0];
            tester[0][2] = c[0];


            tester[1] = [];
            tester[1][0] = a[1];
            tester[1][1] = b[1];
            tester[1][2] = c[1];

            tester[2] = [];
            tester[2][0] = a[2];
            tester[2][1] = b[2];
            tester[2][2] = c[2];


            tester[3] = [];
            tester[3][0] = a[3];
            tester[3][1] = b[3];
            tester[3][2] = c[3];

            tester[4] = [];
            tester[4][0] = a[4];
            tester[4][1] = b[4];
            tester[4][2] = c[4];


            tester[5] = [];
            tester[5][0] = a[5];
            tester[5][1] = b[5];
            tester[5][2] = c[5];


            tester[6] = [];
            tester[6][0] = a[6];
            tester[6][1] = b[6];
            tester[6][2] = c[6];


            tester[7] = [];
            tester[7][0] = a[7];
            tester[7][1] = b[7];
            tester[7][2] = c[7];

            for (var i = 0; i < 8; i++) {
                for (var j = 0; j < 3; j++) {
                    //document.write(tester[i][j] + '&emsp;');
                }
                //document.write('</br>');
            }

            console.log(tester);
            console.log(tester[0][0]);
        }

Это простой пример того, как создать Многомерный массив в JavaScript

        var array = [];
        var array2 = [];
        var array3 = [];
        array2.push('text-1');
        array2.push('text-2');

        array3.push('item-1');
        array3.push('item-2');

        array.push(array2);
        array.push(array3);


        console.log(array);
        
        console.log(array[0][1]);

Узнать длину массива: array.length.

            var array = [];
            var array2 = [];
            array2.push('text-1');
            array2.push('text-2');

            array[0] = array2;
            console.log(array);
0 голосов
/ 19 апреля 2019

Ответ, который я получил с помощью моего мозгового штурма со стороны моего работодателя, чтобы подтолкнуть меня в правильном направлении, заключается в следующем:


function generateTable(a, b, c) {
            document.write('<table cellspacing="5" cellpadding="1" border="1"><tr><th>State/Teritory</th><th>population</th><th>Growth Rate</th></tr>')            
            for (var i = 0; i < a.length; i++) {
                document.write('<tr><td>' + a[i] + '</td><td>' + b[i] + '</td><td>' + c[i] + '</td></tr>');                
            }
            document.write('</table><br><hr>');
        }

0 голосов
/ 19 апреля 2019

Это должно дать вам ожидаемый результат:

const a = ['Hi', 'Hi', 'g', 'j', 'm', 'p', 's', 'v'];
const b = ['900', '900', 'h', 'k', 'n', 'q', 't', 'w'];
const c = ['654', '654', 'i', 'l', 'o', 'r', 'u', 'x'];

function exitToTable(a, b, c) {
  let length = a.length;
  if (length !== b.length || length !== c.length) {
    console.warn('arrays must be of same length');
  }

  [...Array(length)].map((_, index) => {
    document.write(`${[a[index], b[index], c[index]].join('&emsp;')}<br/>`);
  });
}

exitToTable(a, b, c);

Надеюсь, это поможет,

...