• Как научиться делать сортировки любой сложности в JavaScript?

    ZloyHobbit
    @ZloyHobbit
    Если вас интересуют именно сортировки, то я зык не важен, надо изучать алгоритмы.
    www.ozon.ru/context/detail/id/6290126 - одна из лучших книг для начала, на мой взгляд. Гораздо меньше и проще Кнута, или Кормена. Ну и советов с книгами по алгоритмам на Тостере хватает.

    Ну и надо отличать сортировки и обходы. Методы типа map и reduce вызывают некоторую функцию для каждого элемента массива. Они просто проходят по нему, без сравнений.
    sort - сортирует массив, тоесть сравнивает элементы между собой и переставляет. Сложность такого алгоритма обычно гораздо выше, чем при простом проходе, а сравнение можно проводить различными способами, и это можно регулировать, передавая функцию сравнения arr.sort(function). Но эта функция будет только менять принцип сравнения двух элементов массива, а не алгоритм сортировки, который отвечает за порядок сравнения и перестановки. Передавая кастомную функцию, мы можем, к примеру отсортировать числа по алфавиту, или в обратном порядке, при помощи того же самого алгоритма сортировки.
    Ну а если надо реализовывать свой алгоритм, то надо писать свой метод сортировки =)
    Ответ написан
    Комментировать
  • Что такое NxN размер?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Раздел "матрицы" в математике, наверное, будет ближайшим, для понимания текста.

    А вообще тут базовое понимание текста, к математике не особо относящееся.

    NxN означает размерность, где количество строк равно количеству столбцов, так как используется одна и та же буква - N.

    Таким образом, при входном параметре size = 3, нужно построить таблицу 3х3.
    Ответ написан
    1 комментарий
  • Как отсортировать массив из чисел?

    @Radical0x3
    Front-End Developer
    Отсортировать пустой массив?)
    Для сортировки массива можно воспользоваться встроенным методом Array.prototype.sort()
    const array = [5, 2, 8, 11, 42];
    const sortedArray = array.sort((a, b) => a - b);
    console.log(sortedArray); // [2, 5, 8, 11 , 42]
    Ответ написан
    1 комментарий
  • Как поменять элементы в массиве?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Сделать можно тысячей способов, например так:
    let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
    
    [arr[2], arr[5]]  = [arr[5], arr[2]];
    [arr[7], arr[11]] = [arr[11], arr[7]];
    [arr[4], arr[9]]  = [arr[9], arr[4]];
    
    console.log(arr); // [1, 2, 6, 4, 10, 3, 7, 12, 9, 5, 11, 8]
    Ответ написан
    1 комментарий
  • Правильно ли решена задача?

    @wertuda
    let a19 = {
    	"red": ['Akademmistechko', 'Nyvky', 'Universytet', 'Lisova'],
    	"blue": ['Minska', 'Obolon', 'Pochaina', 'Holosiivska'],
    	"green": ['Syrets', 'Zoloti Vorota', 'Klovska', 'Vidubichi']
    }
    
    function f19() {
    	let i19 = document.querySelector('.i-19').value;
    	let out19 = document.querySelector('.out-19');
    	let out = '';
    	
    	for (let key in a19) {
    		for (const item of a19[key]) {
    			if (item.toLowerCase() == i19 || item == i19) {
    				out += key;
    			}
    		}
    	}
    
    	out19.style.background = out;
    	out19.style.height = "100px";
    
    }
    
    document.querySelector('.b-19').onclick = f19;
    Ответ написан
    1 комментарий
  • Как правильно учить Javascript?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вы наверное слышали, что каждый уважающий себя программист обязан написать несколько велосипедов? И JavaScript-программисты тоже так делают и еще как! Так вот в этом нет ничего плохого, это отличное самообучение.

    Для начала заходите на любой каталог плагинов для JavaScript или jQuery. Находите интересный, не очень сложный на вид плагинчик (например карусель, лайтбокс, слайдер и т.п.) и пытаетесь сделать похожий, только лучше. Поначалу будет выходить черти что, но, это будет уже реальная задача, где вы начнете сталкиваться с реальными особенностями языка. Вот тут то знания и начнут обретать какую-то структуру у вас в голове.

    Не пытайтесь брать сразу сложные вещи, начинайте с малого. Как заметили выше, не смотрите пока что на очень сложные книжки, их читать сейчас почти бесполезно.
    Ответ написан
    6 комментариев
  • Не могу вывести значение input в ссылку, полученное в переменную?

    @INRI11
    под нами лишь небеса ©
    <html>
    <head>
    </head>
    <body>
    	<button class="submitClass" >Нажми меня</button>
    	<input type="text" value="Донецк" class = "block">
    
    	<div class="city-name"></div>
    	<div class="city-temp"></div>
    	<div class="disclaimer"></div>
    
    	<div class="imgWrapp"></div>
    	<script>
    		let cities = ["Киев","Харьков","Львов", "Донецк","Запорожье","Кривой рог","Николаев","Мариуполь","Луганск","Севастополь","Винница","Симферополь","Херсон","Полтава", "Чернигов","Черкасы","Хмельницкий"]
    
    		function click () {
    			let input = document.querySelector(".block").value; 
    			let cityId;
    			for(let i = 0; i < cities.length; i++) {
    			if(cities.includes(input)) {
    				cityId = input;
    				break;
    				}  
    			}
    
    			fetch(`http://api.openweathermap.org/data/2.5/weather?q=${cityId}&appid=88d4aef74677c233e595e292f6d361d6`)
    				.then(function(resp) {return resp.json()})
    				.then(function(data) {
    					console.log(data)
    					document.querySelector(".city-name").textContent = data.name;
    					document.querySelector(".city-temp").innerHTML = Math.round(data.main.temp - 273) + "&deg";
    					document.querySelector(".disclaimer").textContent = data.weather[0]['description'];
    					let imgWrap;
    					imgWrap = `<img src="https://openweathermap.org/img/wn/${data.weather[0]['icon']}@2x.png">`; 
    					document.querySelector('.imgWrapp').innerHTML = imgWrap;
    				})
    
    			.catch(function() {
    
    			})
    
    			console.log(cityId);
    		}
    		document.querySelector(".submitClass").onclick = click;
    	</script>
    </body>
    </html>
    Ответ написан
    1 комментарий
  • Как проверить есть ли в ассоциативном массиве определённое значение JavaScript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Перебрать каждое из свойств и проверить. Если оно при переводе в булево даёт false, значит, пустое.
    Есть два исключения: настоящее булево false и число 0, которые не будем считать пустым значением.
    var data = {1: "", 2: "123", 3:""};
    
    function anyEmpty(obj) {
      var p, v;
      for( p in obj) {
        v = obj[p];
        if( !obj.hasOwnProperty(p)) continue;
        if( v === false || v === 0) continue;
        if( !v ) return true;
      }
      return false;
    }
    
    anyEmpty(data)  // true
    Ответ написан
    1 комментарий
  • Стек технологий для Джуна?

    @lecrosshel
    Не силен в Java, но могу сказать относительно js. На данный момент, в этом направлении стек технологий примерно такой: Jquery(не смотря на то что потихоньку умирает), React, Vue, если углубляться в бекэнд, то нужно будет обязательно пощупать NodeJs, NoSql и Sql БД, а там скорее всего придет, что-то типа PHP и будет определяться новый стек, если больше на фронт, то тут CSS препроцессоры, лучше SASS, так как LESS уже достаточно мертв, чтобы с ним не заморачиваться ну и HTML5. А вообще все достаточно неоднозначно ибо IT индустрия очень динамична.Поэтому нужно просто начать с чего-нибудь, а дальше стек подтянется, в процессе работы.
    Ответ написан
    Комментировать
  • Как сверстать шапку такой формы?

    lukoie
    @lukoie
    Вот тут описываются все способы решений:
    https://css-tricks.com/creating-non-rectangular-he...
    Ответ написан
    Комментировать