Вход

Просмотр полной версии : создать матрицу


Роман Андреевич
06.11.2018, 07:20
Коллеги, доброго времени суток, прошу помощи затупил немного.

Как создать двумерный массив, вида:

arr = [
[0,1,2],
[3,4,5],
[6,7,8],
[0,3,6],
[1,4,7],
[2,5,8],
[0,4,8],
[2,4,6]
];

Т.е. каждый элемент массива arr, должен быть массив. Кол-во элементов, изначально не известно и в дальнейшем не ограниченно, а вот длинна у каждого, должна быть 3.

Заранее благодарю

рони
06.11.2018, 07:27
Роман Андреевич,
:-? из чего создать?

Роман Андреевич
06.11.2018, 07:31
рони, на вход получаем span элементы, на которые кликнул пользователь. Они должны добавляться в этот массив))

j0hnik
06.11.2018, 08:01
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
<span>6</span>
<script>

var arr = [[]], i = 0;
document.querySelectorAll('span').forEach(el=>el.onclick=e=>{
if(arr[i].length == 3) {
arr.push([]);
i++;
}
arr[i].push(el.textContent);
console.log(arr);
});

</script>

Роман Андреевич
06.11.2018, 08:10
j0hnik, спасибо за помощь))))

рони
06.11.2018, 08:10
Роман Андреевич,
<!DOCTYPE html>

<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
span{
height: 50px;
width: 50px;
background-color: #EEE8AA;
display: inline-block;
}

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var a = [
[]
];
$("body").on("click", "span", function() {
var b = $(this).data("num"),
c = a[a.length - 1];
3 == c.length ? a.push([b]) : c.push(b);
$(".out").text(JSON.stringify(a, null, 4))
})
});
</script>
</head>

<body>
<span data-num="0">0</span>
<span data-num="1">1</span>
<span data-num="2">2</span>
<span data-num="3">3</span>
<span data-num="4">4</span>
<span data-num="5">5</span>
<span data-num="6">6</span>
<span data-num="7">7</span>
<span data-num="8">8</span>
<span data-num="9">9</span>
<div class="out"></div> </body>
</html>