Сортировка объектов 4/5


#1

Вообще легкотня, даже сокращу

const getSortedArray = (array, key) => array.sort((a,b) => a[key] - b[key]);


#2

Мой вариант получился посложнее, но рабочий. Все таки в уроках обучения не было таких командб как “const”, “.sort”.

var getSortedArray = function (mass, key) {
for (var i = 0; i < mass.length - 1; i++) {
for (var j = i + 1; j < mass.length; j++) {
if (mass[i][key] > mass[j][key]) {
var swap = mass[i];
mass[i] = mass[j];
mass[j] = swap;
}
}
}
return mass;
}


#3

Добрый день, вижу Ваши сообщения с кодом почти в каждой задаче. Но Ваш код намного короче остальных, почему? Где почитать про это? И почему в курсе не рассказывают об этом?


#4

почитать можно тут и тут.
не рассказывают видимо по той причине, что JS достаточно сложен, а потому, прежде чтобы осваивать его новый синтаксис, нужно освоить ванильный ну и чтобы вы покупали интенсивы


#5

Просьба подсказать , в контексте работы надо данной задачей обнаружил такое несоотвествие. Касаемо объектов, переменная же должна сохранять только ссылку на объект, В приведенном мной примере переменная change стала независимым объектом. Как так?


#6
var obj = {"name":"Ляксандр","age":"15"};
var copy = obj;
obj = "30";
console.log(copy);
console.log(obj);

Объект существует сам по себе, независимо в какую ячейку памяти вы его определите.
Когда пропадает 1ая ссылка obj (в нее записывается примитив - строка “30”), всё еще остается 2ая ссылка copy и объект все еще доступен по ней.

также и с вашей задачей, есть объект

{ "name": "Василий","age": "6" }

сначала он доступен из массива arr

console.log(arr[0]);

потом ему дают вторую ссылку -

let change = arr[0];

потом затирают 1 элемент массива (с индексом 0) с присвоением ему примитива - число 25:

 arr[0] = 25; // затёрли основную ссылку

тот самый объект с Василием все еще доступен по ссылке change, хотя он исчез из массива arr

т.е. объекты существуют сами по себе, пока есть упоминание на них. как только последняя связь обрывается - сборщик мусора выкидывает его из памяти.

по сути также работают и замыкания, т.к. функция это объект


#7

спасибо, дошло