Помогите понять структуру кода и решение задачи(многомерные массивы) [закрыт]

121
04 апреля 2022, 16:50
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 2 года назад.

Улучшить вопрос

let x = [ 
        ['box.1',['no.1','no.2','no.3']], 
        ['box.2',['no.1','no.2','no.3']], 
        ['box.3',['no.1','no.2','no.3']], 
        ['box.4',['no.1','no.2','no.3']], 
        ['box.5',['no.1','no.2','no.3']], 
        ['box.6',['no.1','no.2','no.3']], 
        ['box.7',['no.1','no.2','no.3']], 
        ['box.8',['no.1','no.2','no.3']], 
        ['box.9',['no.1','no.2','no.3']], 
        ['box.10',['no.1','no.2','no.3']], 
    ]; 
    function solution(x){ 
        for(let i=0;i<x.length;i++){ 
            for(let j=0; j<i;j++){ 
              x.split('.') 
            } 
        } 
    }

Вопрос из сайта с задачами: есть коробки, внутри которых помещаются три маленьких коробки: номера первых трёх маленьких коробок։

  • box.1,no.1
  • box.1,no.2
  • box.1,no.3

По той же логике можем сказать, что box.3,no.2 это 8-ая маленькая коробка. нужно написать функцию solution которая на входе получает код box а на выходе получает порядковый номер маленьких коробок, на пример:

  • на входе: box.6,no.1, на выходе։ 16
  • на входе: box.7,no.1, на выходе։ 19
  • на входе: box.8,no.1, на выходе։ 22
  • на входе: box.10,no.2, на выходе։ 29

Правильно ли понимаю структуру матрицы?

Answer 1

function getBoxIndex(x) { 
	var splittedString = x.split(',') 
	var parentBoxNum = parseInt(splittedString[0].split('.')[1]) 
	var childBoxNum = parseInt(splittedString[1].split('.')[1]) 
	return (parentBoxNum - 1) * 3 + childBoxNum 
}

Answer 2

Собственно номер элемента складывается из: номер строки*3+номер столбца+1

let x = [
    ['op.1',['A','B','V']],
    ['op.2',['no4','no5','no6']],
    ['op.3',['no7','no8','no9']],
    ['op.4',['no10','WWWW','no12']],
    ['op.5',['no13','no14','no15']],
    ['op.6',['no16','no17','no18']],
    ['op.7',['no19','no20','no21']],
    ['op.8',['no22','no23','no24']],
    ['op.9',['no25','no26','no27']],
    ['op.10',['no28','no29','no30']],
];

function solution(x){
    let s=2;
    for(i=0;i<x.length;i++){
        for (j=0; j<x[i][1].length; j++){
            console.log(x[i][1][j]+" = "+(3*i+j+1));
        }
    }
}

Вывод (фрагмент)

A = 1
B = 2
V = 3
no4 = 4
no5 = 5
no6 = 6
no7 = 7
no8 = 8
no9 = 9
no10 = 10
WWWW = 11

Возможно стоит более четко описать задачу. Если вы обращаетесь к элементу x[i][1][j] то его номер по порядку = 3*i+j+1, где 3 это размерность вложенного массива. Если вложенные массивы разной длины, то нужно последовательно суммировать их длины.

Это стандартная задача преобразования линейного массива в двумерный и обратно.

После дополнительных условий мы имеем на входе данные определенной структуры. Нужно вытащить из них числа. Расчет ведем по той же формуле.

var inbox="box.7,no.1";
var data=inbox.split(',');
var boxN=parseInt(data[0].split('.')[1]);
var itemN=parseInt(data[1].split('.')[1]);
var res=3*(boxN-1)+itemN;
READ ALSO
Повторный onclick

Повторный onclick

Если нажать на картинку, то она будет следовать за курсоромНо а как сделать так, чтобы при втором клике на картинку она бы уже отстала от курсора...

233
Отладка пока не достигнется значение

Отладка пока не достигнется значение

Есть огромный код Среди него нужно найти, когда (место в коде) значение одной из переменных-строк не станет равным "GV 7" из Visual Studio

106