Показать сообщение отдельно
  #5 (permalink)  
Старый 15.12.2018, 20:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Можно исключить одну операцию, если так:

var a = [
    [1, 2, 3, 4],
    [12, 0, 0, 5],
    [11, 0, 0, 6],
    [10, 9, 8, 7]
], o = a[0], v = [];

for(var i=0, m = a.slice(1, -1); i<m.length; i++) {
    o.push(m[i].pop());
    v.push(m[m.length-1-i][0])
}

o = o.concat(a.pop().reverse(), v);

alert(o);
Ответить с цитированием