Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как восстановить пароль wifi-точки?

Лучший ответ:
А пароль не помню.Как восстановить?Попробовать в качестве пароля admin.
Если не поможет - сброс роутера к заводским настройкам кнопкой, после чего вход по дефолтному логину и паролю.
Разумеется после сброса потеряются все настройки - надо будет заново настраивать подключение к провайдеру.

Худший ответ:
Часто дефолтным могут быть пароли:
Admin
Password
Без пароля
Или наклейка на самом роутере + если всё же есть доступ к интернету, можно по модели роутера посмотреть
Вопрос: React-Redux. Какой путь правильнее: вызов connect на главном файле или на разных, которым нужно пробросить данные?

Лучший ответ:
Собственно оба варианта корректны. Если рассматривать это в плане удобства использования, то второй вариант однозначно выигрывает. Один большой компонент будет разделен на несколько мелких, те еще на несколько, а те - еще. И вам будет проблематично перебрасывать каждый раз в параметры store.
Provider вызывается один раз в корневом компоненте. Далее же вы просто любой из компонентов подключаете к redux store:import React, {Component} from "react";

import {connect} from "react-redux";
import {bindActionCreators} from "redux";

/* ваш компонент */

class MyComponent extends Component {
	render() {
		console.log(this.props);

		return (<div></div>);
	}
}

const mapStateToProps = (state) => {
	return {
		state
	}
};

const mapDispatchesToProps = (dispatch) => {
	return {
		dispatch,
		// это мы подключаем собственные actions
		actions: bindActionCreators(actions, dispatch),
	}
};

export default connect(mapStateToProps, mapDispatchesToProps)(MyComponent);

Худший ответ:
Приложение вы оборачиваете в провайдер: он должен быть только один. Далее - вызываете коннект там, где нужны данные. При этом старайтесь избегать больших "коннектов" которые мапят кучу стейта и экшенов - т.к. это ведет к невероятному количеству ненужных ререндеров и перерасчетов state...
Как пример - список с большим количеством элементов. Самая первая идея - сделать коннект к компоненту списка и передать ему items из state:const Item = props => (
  <li>{props.data.title}</li>
)

const List = props => (
  <ul>{props.items.map(item => <Item data={item} />}</ul>
)

const ConnectedList = connect(
  state => ({ items: state.someItems })
)(List)
Но что произойдет, если один айтем из store изменится? Правильно - ререндер всего списка. Даже если вы сделаете Item как PureComponent - все равно получится огромный оверхед.
Второй вариант: коннектить список, но передавать туда только массив id элементов Плюс - коннектить каждый элемент, и получать данные из стора по переданному id. При этом хранить в сторе мы будем отдельно все айтемы (в виде хэшмапа itemId -> item) и отдельно массив с id, либо просто используйте reselect, который поможет вам сделать преобразование items => itemsIds избежав ререндеров (в примере я упущу этот момент, для краткости).const Item = props => (
  <li>{props.data.title}</li>
)

const ConnectedItem = connect(
  (state, props) => ({ data: state.someItems.entities[props.id] })
)(Item)

const List = props => (
  <ul>{props.items.map(id => <ConnectedItem id={id} />}</ul>
)

const ConnectedList = connect(
  state => ({ items: state.someItems.ids })
)(List)
Другими словами - даже 1000 подконекченных к стору компонентов лучше, чем 1 большой коннект (не скажу, что в 100% случаев, но все же).
Подробнее про этот момент почитать можно тут somebody32.github.io/high-performance-reduxPS
И в целом, я заметил, что вы активно изучаете react - поэтому, рекомендую вот этот цикл статей Practical Redux. Там очень много годной информации по react+redux
Вопрос: Как перенести элементы внутри flex-box?

Лучший ответ:
flex-wrap: wrap;
Посмотрите как делают сетки на флексах. Есть отдельные проекты, чисто сетка. Есть в составе фремворков (тот же бутстрап 4 альфа)

Худший ответ:
В своё время мне очень помогла понять флекс эта игрулька.. flexboxfroggy.com
Ну допустим так:.cont {
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            flex-wrap: wrap;
        }
 .cont > div {
            width: 30%;
        }<div class="cont ">
        <div>item</div>
        <div>item</div>
        <div>item</div>
        <div>item</div>
        <div>item</div>
        <div>item</div>
        <div>item</div>
        <div>item</div>
        <div>item</div>
    </div>
Вопрос: Jquery конфликтует с https, в чем причина?

Лучший ответ:
можно подключить без указания протокола:<script src="//code.jquery.com/jquery-3.3.1.slim.min.js" crossorigin="anonymous"></script>

Худший ответ:
Консоль в браузере смотреть на предмет ошибок
Проверить подключен ли jq по https
Вопрос: Как реализовать Mikrotik DHCP-relay где DHCP-сервер Win2008r2?

Лучший ответ:
Все оказалось намного прозаичней:
На старой прошивке запросы не посылал и не получал, после прошивки уже что то посылал, но ответов нет от сервера. Установив на сервер wireshark и просмотрев информацию - оказалось запросы принимал и отсылал обратно с нужной области, но они не доходили. На шлюзе прописал маршрут до зверька, запросы доходили и все завелось как надо.

Худший ответ:
А на микротике, точно включено логирование dhcp ?
Сами понимаете, без логов совсем никак.
Вопрос: Для чего доменное имя начинают с www?

Лучший ответ:
Исторически сложилось.
Предполагалось, что веб-сервер - лишь один из серверов, которые висят на вашем доменном имени.
Например, есть компания с доменом company.com
www.company.com - веб-сайт компании
smtp.company.com и pop.company.com - почтовый сервер компании
ftp.company.com - файловый сервер компании
ns.company.com, jabber.company.com, irc.company.com и так далее - куча разных других сервисов у той же самой компании.
На практике же сегодня большинство сайтов - это только сайты, у них нет никаких других сервисов. Очень мало кто держит свой публичный почтовый или файловый свервер. Поэтому company.com === www.company.com

Худший ответ:
Просто так было принято, но на самом деле разницы абсолютно нет. Я все сайты делаю без www
Вопрос: Не ставятся драйвера Nvidia на intel, как быть?

Лучший ответ:
Данная модель может и не иметь дискретной видеокарты.Пример.
Для проверки откройте Диспетчер Устройств и посмотрите, сколько видеокарт обнаружено системой. Если нет неопознанных устройств (очень маловероятно, что система ну совсем никак не опознает видеоадаптер, но все же), а видеокарта одна, значит никакой дискретной видеокарты у вас нет.
Две видеокарты отображаются примерно так:

Худший ответ:
а в диспетчере устройств карточка то есть?
Софт hp установлен? (он может программно включать карту нвидиа
Вопрос: Как правильнее поступить со ссылками?

Лучший ответ:
Абсолютные ссылки начинаются с протокола http и т.д., а не со слеша. 
Ссылки со слешем или без него - относительные. Относительные либо корня сайта либо того места, в котором написаны, соответственно. Если все в проекте в конечном итоге соберётся в основной index, то будет слеш или нет на результат не повлияет.

Худший ответ:
Без слеша лучше
Вопрос: Книги по искусственному интеллекту для обучения во время прохождения службы в армии?

Лучший ответ:
Выкинь из головы этот бред (про хорошее изучение искусственного интеллекта в армии лооол) и займись за оставшийся месяц подтягиванием показателей по бегу и отжиманиям. 
Таким же был, как ты, помню, учебников накачал в дорогу...Дружище, если у тебя и будет выдаваться свободный час, то ты его будешь тратить либо на уход за собой/своими вещами, либо на сон. Вспомнишь с улыбкой про этот вопрос, когда будешь просить дневального разбудить тебя за час до подъема, чтобы успел подшиться и т.д.))) А 3-4 часов по воскресеньям недостаточно, чтобы во что-либо погрузиться на должном уровне.

Худший ответ:
Список книг, видео и курсов по машинному обучению и математике, всё на русском языке. Большая, качественная подборка. Почти все pdf'ки книг гуглятся.
https://ru.stackoverflow.com/a/683632/1084
Вопрос: Не могу сделать запрос ajax. Как решить проблему?

Лучший ответ:
Гуглите CORS

Худший ответ:
Положите файлы axios.min.js и vue.js локально на сервер и раздавайте их статикой. Вас не пропускает браузер, говоря, что вы нарушаете политику использования обращений. Ну и читайте про CORS - https://ru.wikipedia.org/wiki/Cross-origin_resourc... и https://habr.com/company/pentestit/blog/337146/
Вопрос: Java Enterprise vs Computer Vision?

Лучший ответ:
Послушайте, может вам делом заняться, а не вопросы на тостере строчить ? 
Вы уже десятый наверное по счету вопрос задаете, на схожую тему. Вы понимаете что просто прокрастинируете?
Вот вам универсальный ответ на все ваши вопросы, если надумаете настрочить еще один - перечитайте этот ответ
Вопрос: Куда бы вы посоветовали двигаться?
Ответ:  Если не закончили ВУЗ, то заканчивайте. Если закончились - двигайтесь на ближайшее собеседование, куда позовут.
Вопрос: Стать высококлассным разработчиком или исследователем?
Ответ: Становитесь. Но для начала хотя бы найдите работу за деньги. Или хотя бы стажировку за опыт.
Вопрос: Где больше зарплата?
Ответ: В Роснефти, на должности гендира. К сожалению вакансия одна и занята, идите куда угодно, где вам будут платить за ваши умения.
Вопрос: Где проекты интереснее?
Ответ: В компаниях, у которых основной бизнес посроен на "интересных проектах". Институты, инновационные компании и тд. Вас туда все равно не возьмут, крутых студентов хантят курса со второго.
Вопрос: Где тяжелее работать?
Ответ: В шахте. Если нравится тяжелая работа, то зачем вам в IT, тут обычно кондиционируемый офис.
Вопрос: Где больше личной свободы?
Ответ: Максимум свободы обладают люди без обременения в виде работы, семьи и недвижимости. Если вы про работу, то везде плюс-минус одинаково. Идите на собеседование и спрашивайте про то, что входит в конкретно ваши понятия личной свободы.
Вопрос: Где можно лучше самореализоваться?
Ответ: Не тут. И скорее всего не на офисной работе в ближайшие лет 10. Как только станете профи, и займете должность архитектора проекта - реализуйтесь на здоровье, но опять же в рамках того, что хочет от вас бизнес. 
Если хотите раньше - пишите свои пет-проекты и коммитьте в опен-сорс.

Худший ответ:
А что тебе интереснее? 
Энтерпрайз он большой. Если тебе нравится разработка, то тяжело тебе нигде не будет. Зависит от компании, конечно, бывают как губку выжимают, но в основном везде хорошие условия.
Личная свобода везде.  Самореализовываться тоже можно везде. Зарплата примерно одинаковая в России я думаю. А где интереснее тоже зависит от тебя))
Вопрос: Новый домен или поддомен для сервиса?

Лучший ответ:
каждый на своём домене, и ссылаться друг на друга (пример habr,geektimes,toster...)

Худший ответ:
А еще если есть необходимость можно поработать и с VPS. Есть по этому поводу интересная компания swiss-vps.ru
Вопрос: Что такое бизнес логика android приложения?

Лучший ответ:
Уберите слово бизнес и все становиться понятнее, а смысл не меняется.

Худший ответ:
Предположим, вы хотите написать программу, которая будет считать коммунальные расходы.
Бизнес логика тут простейшая - нужно ежемесячно вводить показания счетчиков и формировать цену исходя из тарифа. Следовательно нужно дать возможность устанавливать тариф для каждого месяца и возможность вводить показания счетчика. Может вы ошибочно ввели неправильные показания счетчика - значит должна быть возможность удалить показания или редактировать.
Возьмем что-то посложнее. Программу для интернет-магазина. Продумайте бизнес логику - например бонусы, или скидки на товар, при этом кто-то уже мог сделать заказ, который едет из Польши и будет доставлен клиенту через неделю. Видимо в заказе кроме списка товаров нужно отдельно добавлять цену именно для этого заказа. Бонус может высчитываться если было выбрано несколько конкретных товаров - все это нужно предусмотреть. Ну и так далее.
Бизнес-логика это часть тех.задания, когда программа делает то, что нужно клиенту. Технические алгоритмы клиенту не так важны. Будете вы пользоваться массивами или б-деревом, базой данных или хранить все в CSV файлике - это уже техническая часть.
Вопрос: Кто знает простые альтернативы JQuery?

Лучший ответ:
VanillaJS, очень хороший фреймворк. Перешел на него с jQuery и всем советую.

Худший ответ:
Есть zepto — легковесная альтернатива jQuery (мин. версия 9.6 kb).
Вопрос: Как установить триал windows на vps?

Лучший ответ:
вопрос простой, поэтому начните с
но вообще не на каждом виндоус будет работать

Худший ответ:
Для начала посмотрите что за виртуализация  - очень вероятно что windows вообще не получится поставить.
Вопрос: Есть ли внешние крепления для мониторов ноутбука, если сломаны родные? Как это может называться?

Лучший ответ:
Петли. У каждого модельного ряда каждого производителя свои. Сломанная петля следствие сломанного крепления петли к днищу ноутбука. Модель укажите - много станет проще.

Худший ответ:
Если слома пластик ноутбука - проще купить целый корпус с разборки. 
На авито этого добра навалом, как и перекупщиков :) 
Ремонт пластика тоже возможен, но как правило внешний вид не тот, да и хрупкость в местах пайки всё равно выше.
Вопрос: Маршрутизатор: несколько сетей — 1 порт. Возможно?

Лучший ответ:
Возможно.
Вариант 1, красивый: если коммутатор умеет VLAN, разбить его на два VLAN. 
ПК подключаются к access-портам.
Порт коммутатора, смотрящий на роутер, настраивается как trunk, и в нём прописываются оба VLAN.
Порт на роутере тоже настраивается как trunk c теми же VLAN.
Вариант 2, страшный: см. ответ от fshp 
Но тогда теряется весь смысл разбиения на две подсети: Ethernet-домен один и тот же!
А шибко умный MS Windows при такой схеме включения ухитряется общаться с живущими в другой подсети соседями по коммутатору _напрямую_, а не через роутер.
Получается интересно: Windows, встретив незнакомый ip-адрес, _всегда_ первым делом шлёт ARP-запрос.
И если он получит ответ (а он его получит: Ethernet-домен-то один!), то вместо таблицы ip-маршрутизации он будет пользоваться ARP-таблицей, и трафик между узлами из разных сетей пойдёт _только_ через коммутатор, не заруливая по пути в роутер.
В общем, VLAN и только VLAN )

Худший ответ:
"Получается интересно: Windows, встретив незнакомый ip-адрес, _всегда_ первым делом шлёт ARP-запрос."
Я тоже так считал, поэтому и задал вопрос: "мол, почему бы компьютерам из разных подсетей не общаться посредством Arp-таблицы" Вот ссылка на этот вопрос: Почему не могут взаимодействовать компьютеры в разных сетях?
Ответ оказался простым: для ip адреса из другой подсети ARP-запрос даже не инициализируется.
Вопрос: Как обстоят сейчас дела с вебом?

Лучший ответ:
1. Да, да (почему или?)
2. Чем глубже тем лучше
3. БЕГN

Худший ответ:
1) Пользуются популярностью, нет смысла изобретать гнилые колеса. 
2) Что в твоем понятии базис? Сам по себе JS это ад, без строгой типизации лучше уж делать сайты на юкозе. Учи TypeScript, будет счастье.
3) Какая вообще разница на чем бэкэнд? ASP.NET MVC, Django, Spring, фронтенд разработчика это не должно волновать, разберись в базовых понятиях для начала. Angular 2(4) в близжайшие годы будет востребован.
Вопрос: При подключении ajax-ом файла php выдается 500 ошибка?

Лучший ответ:
В начало файла добавьте строку и должно заработатьrequire($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
Если есть желание разобраться то почитать можно здесь, и заглянуть внутрь файла "/wp-admin/admin-ajax.php"

Худший ответ:
Файл some.php работает напрямую, а не через wordpress? Если так, то функции WP не подключаются и соответственно при попытке их найти всё падает. Исправить: либо отдавайте нужный контент средствами WP, либо отправляйтесь в долгое путешествие по сборке всех include-файлов для подключения их в самом скрипте.
Вопрос: Какое есть ПО для снятия скриншотов WEB страниц на OS X?

Лучший ответ:
таких много:
https://itunes.apple.com/us/app/browseshot/id615916400
https://itunes.apple.com/us/app/webshot-snapshot-f...
https://derailer.org/paparazzi/
www.globaldelight.com/capto
www.tastyapps.com/websnapper
сам для этого обычно пользую экстеншены браузеров.

Худший ответ:
Поставить браузер Firefox и к нему плагин Screengrab
Он же для Chrome.
И никакой иной софт не нужен.
Вопрос: Как быстро получить сумму чисел большого массива?

Лучший ответ:
Твой вопрос сводится к вырожденному вопросу: "Можно ли угадать данные на диске, не зная природы этих данных, а зная только длину". 
Ответ: нельзя.Дополнил ответ
Я правда крайне сомневаюсь, что ассемблер сможет раскрутить твой хард быстрее чем Си. Или ты считаешь, что аппаратная арифметика будет медленней харда?

Худший ответ:
Задача вообще не понятна. Частота процессора указана, а размерность регистров и массива -нет, где храниться массив то-же.  В общем случае будет все равно упираться  в IO, если без параллелизма - через реальный режим работы процессора и пачками через AVX и хорошо постараться с кэшем.
Вопрос: Как вывести контент с помощью show()?

Лучший ответ:
Ну вообще, по хорошему, нужно сделать API, и за каждым постом обращаться по ajax, и выводить его.
А так, каждый пост пусть имеет блок<div data-post-id="его post_id" class="post_block">Сам пост</div>
в css делаете.post_block { display: none; }
и ссылки должны быть вида<a href="что-то там" data-to-post="нужный post_id">текст</a>
и если мы юзаем jQuery, то пишем$(function() {
   $('[data-to-post]').click(function(e) {
      e.preventDefault();
      var postId = $(this).data('to-post');
      $('.post_block').not('[data-post-id="' + postId + '"]').fadeOut(); // прячем все блоки, кроме текущего, чтобы не было бага анимации
      $('.post_block[data-post-id="' + postId + '"]').fadeIn(); // показываем нужный
   });
});
Как-то так. Писал с телефона, поэтому не поленитесь проверить.

Худший ответ:
Вешаешь обработчик на клик по заголовку.
Обработчик делает ajax-запрос.
Получает данные.
Выводит что-то там внизу.
С каким из пунктов сложности?
Вопрос: Разделяется ли скорость при подключении к роутеру нескольких устройств?

Лучший ответ:
Если качает один - у него будет скорость 256, если одновременно качают 2 (и каждый качает один файл в один поток) - то скорость будет по 128. Если один качает торренты в 100 потоков, а второй смотрит видео с ютюб - то первый займет почти всю полосу. Это очень грубо.
Очень приближенно - скорость делится на количество TCP соединений.

Худший ответ:
По разному.
Обычно среднестатистический SOHO роутер по умолчанию старается делить  полосу примерно поровну. 
Ключевые слова тут - старается и примерно.
Не всегда у него получается делить, да и понятие поровну очень растяжимое - поровну между пользователями или потоками порожденными пользователем.
В итоге один пользователь при желании может на 99% забить канал.
Если у вас узкий канал и возникает такая проблема - нужно купить более функциональный роутер умеющий делать шейпинг - т.е  разделение трафика по четко описанным правилам. Из недорогих девайсов такого рода можно порекомендовать Mikrotik.
Настройка шейпинга подразумевает наличие знаний и навыков, и процесс это непростой, а следовательно недешевый. Да и нагрузка на роутер большая.
Поэтому есть смысл его делать когда нет возможности увеличить скорость подключения.
Вопрос: Существует ли инспектор элементов в мобильном?

Лучший ответ:
В Safari же есть.
iPhone по проводу и готово.
"Разработка">"iPhone"

Худший ответ:
1. на Androidе есть режим разработчика, который позволяет через компутер подключаться к мобильному браузеру.
2. Поставить эмулятор Android/iOS и гонять браузеры там.
Вопрос: Есть ли open sourse Документооборот?

Лучший ответ:
Нужно сделать документооборот для организации собственными силамиА силы есть? Ну а если не такого то подскажите на каком языке лучше писатьа где сила?
Предлагаю начать с простого: на простом русском языке расписать подробное техзадание/требования к СДО на предприятии и схему внедрения. После этого уже думать дальше или же останавливаться.

Худший ответ:
Система электронного документооборота для допиливания
Писать лучше на том, на чем удобнее. Я бы стал писать на python (django)
А мой коллега, на php(symphony)
А ты можешь писать на С, если тебе так удобнее.
Вопрос: Почему regEx не работает в firefox?

Лучший ответ:
FireFox пока не поддерживает lookbehind: (?<= ) и (?<! ), которые введены в ECMA2018.

Худший ответ:
function transform(addr) {
    const regEx = /((д(ом)?|стр(оение)?|\/|-)\.?\s*|)\d+((,?\s*(к(ор(п(ус)?)?)?\.?)\s*\d+)|(\s*[а-я])|(\s*\/\s*\d+))?\s*$/;
    let result = addr.replace(regEx, function(m0, m1) {
        if (m1) {
            return m0;
        } else {
            return 'д. ' + m0;
        }
    });
    return result;
}

console.log(transform('Татарстан, г. Казань, ул. Баумана, 36'));
Вопрос: Должены ли внутри Facade (pattern) создаваться объекты?

Лучший ответ:
Второе. Лучше предоставлять зависимости извне, и не только для фасада, но и вообще.

Худший ответ:
У вас в фасаде бизнес логика - по сути это сервис.
Фасад тупо должен агрегировать методы вызова внутренних сервисов  какого либо компонента
https://refactoring.guru/ru/design-patterns/facade
Вопрос: Как убрать из черного списка Gmail свой домен?

Лучший ответ:
Как убрать из черного списка Gmail свой домен?Четко выяснить и устранить причину попадения в черный список (например перестать рассылать спам)Терпеливо ждать когда гугл соизволит удалить вас из черного списка.
Следует понимать что в гугле с черным списком работает не специально обученный человек, а банальный скрипт.
Он сам вычеркнет вас из блэклиста через некоторое время если прекратится спам. Теоретически. На практике может и не вычеркнуть - косяки у всех случаются, да и не факт что вы не спамите больше.
Если вы все устранили, подождали пару недель и ничего не произошло, можно попробовать написать запрос в гугл.
Но  большие надежды возлагать на него не стоит - у гугла миллиарды пользователей, на всех специалистов техподдержки не напасешь. Да и гугл по сути вам ничем не обязан, поэтому может просто игнорировать вас.Как войти в доверие жмайла? Какие шаги я должен сделать?Только ждать, надеяться и верить.
Для гугла вы никто - вы не являетесь клиентом гугла, не платите ему денег за это, поэтому бессмысленно ожидать, что он будет тратить время на разбор и решение вашей проблемы.
Был спам - это проблема для гугла, он внес вас в блэклист, проблема исчезла. Если нет проблем - зачем лишние беспокойства?
А ваши проблемы - это исключительно ваши, и гугл они никоим образом не волнуют.
Но в большинстве случаев все отлично решается на автомате - перестали спамить, вылетели из блэклиста.
Поэтому ваша основная задача это поиск и устранение причин попадания в блэклист, а так же исключение их возникновения в дальнейшем

Худший ответ:
Как войти в доверие жмайла? Какие шаги я должен сделать?
"...Под этими строками было приписано другой рукой:
«Ничего нельзя сделать»...." (С) Александр Дюма "Граф Монте-Кристо"
Даже достучаться до гугловского саппорта - это и то невероятный квест, обычно нерешаемый. А уж добиться от него что-то - "нет, сынок, это фантастика" (С) Реклама
Такова плата за якобы "бесплатный" сервис...
Вопрос: Сопровождение проекта: продавать часы или результат?

Лучший ответ:
Сопровождение проекта - это договор с регламентируемым списком работ и ограниченным количеством часов по каждому из этих типов работ и временем реакции на каждую задачу или сбой.
Разработка/доработка любого нового функционала или исследование - это НЕ сопровождение и регламентируется отдельным договором подряда.
The End.

Худший ответ:
Есть такие люди, которые считают, что заплатили свои копейки и ты теперь им все свое время должен. А есть адекватные и не геморройные. Я обычно предлагаю на абонентскую плату с лимитом, свыше лимита - доплата. Адекватные или подписывают сразу или сами просят на повременку. А договор обслуживания чисто на результат часто выливается в рабство. Хотите, что бы глаз дергался и здоровье подкосилось - можете на результат работать.
Вопрос: Как работает этот массив и цикл?

Лучший ответ:
// i === 0
array[i] = [array[i],array[array.length - i - 1]]; // [[1, 8], 2, 3, 4, 5, 6, 7, 8]
array[array.length - i - 1] = array[i][0]; // [[1, 8], 2, 3, 4, 5, 6, 7, 1]
array[i] = array[i][1]; // [8, 2, 3, 4, 5, 6, 7, 1]
// и т.д.

Худший ответ:
А если нажать F12 и запустить код в консоли?
Сначала в ячейку массива временно записывается массив из двух элементов, собственного и зеркального с обратной стороны. Потом значения возвращаются, но обмениваются местами. Чтобы не поменять элементы местами дважды, цикл идёт только до середины длины.