Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
23 / 21 / 3
Регистрация: 27.10.2017
Сообщений: 192

Нужно разобраться в программе

14.08.2019, 14:28. Показов 2688. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
JavaScript
1
2
3
4
5
let sortedRows = Array.from(table.rows)
  .slice(1)
  .sort((rowA, rowB) => rowA.cells[0].innerHTML > rowB.cells[0].innerHTML ? 1 : -1);
 
table.tBodies[0].append(...sortedRows);
Такой вопрос, что происходит в этих двух строчках
JavaScript
1
2
  .slice(1)
  .sort((rowA, rowB) => rowA.cells[0].innerHTML > rowB.cells[0].innerHTML ? 1 : -1);
а именно, почему перед slice просто стоит точка и перед sort тоже и что за оператор =>??
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2019, 14:28
Ответы с готовыми решениями:

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

Немного нужно разобраться в программе
#include <stdio.h> #include <conio.h> #include <string.h> int main() { const char delim = " "; char mas; int c=0; ...

Нужно разобраться в программе (конструкторы)
Задание Объявите класс TCar, создающий тип – автомобиль. Элементы – данные класса – название автомобиля, год выпуска. Предусмотрите...

4
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
14.08.2019, 14:46
Цитата Сообщение от nikita55050505 Посмотреть сообщение
.slice(1)
вернёт новый массив, начиная с элемента [1], т.е. со второго. Далее
Цитата Сообщение от nikita55050505 Посмотреть сообщение
.sort((rowA, rowB)
кастомная сортировка содержимого ячейки [0] строки А и В.
Цитата Сообщение от nikita55050505 Посмотреть сообщение
slice просто стоит точка и перед sort тоже
это стандартные методы их вызов так можно реализовать.
Цитата Сообщение от nikita55050505 Посмотреть сообщение
=>
это не оператор, это стрелочная функция, точнее иной способ записи безымянной функции
JavaScript
1
function (){}
1
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
14.08.2019, 14:52
точка это вызов метода, например у массива есть метод slice (https://developer.mozilla.org/... rray/slice)

после слайса получается новый массив, где опять же у массива есть метод sort, чтобы не писать
JavaScript
1
2
3
let sortedRows = Array.from(table.rows)
let sliced = sortedRows.slice(1)
let sorted = sliced.sort...
в общем это функциональное программирование...

=> - это стрелочная функция, чтобы не писать, например

.sort(function(rowA, rowB) {
...
return ...
})

пишут

.sort((rowA, rowB) => ... далее идет тело ф-ции, если тело ф-ции можно записать одной строкой, которая возвращает что-то,
тогда можно не оборачивать тело ф-ции в {} и делать return... ну и само тело ф-ции делает "short hand if"

т.е.

rowA.cells[0].innerHTML > rowB.cells[0].innerHTML ? 1 : -1

можно записать как

if (rowA.cells[0].innerHTML > rowB.cells[0].innerHTML) {
return true
} else return false
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
14.08.2019, 14:59
Лучший ответ Сообщение было отмечено nikita55050505 как решение

Решение

Здравствуйте.
В прежнем скрипте реализована неправильная функция сортировки.
Надо так:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <table>
        <tr>
            <th>Заголовок 1</th>
            <th>Заголовок 2</th>
            <th>Заголовок 3</th>
        </tr>
        <tr>
            <td>Первый3</td>
            <td>Второй7</td>
            <td>Третий</td>
        </tr>
        <tr>
            <td>Первый3</td>
            <td>Второй0</td>
            <td>Третий</td>
        </tr>
    </table>
    <script>
        let table = document.querySelector("table");
        let sortedRows = Array.from(table.rows)
            .slice(1) // В новый массив копировать ссылки на все строки таблицы, кроме первой строки (шапки)
            // сортировка строк таблицы по первому столбцу
            .sort((rowA, rowB) => (rowA.cells[0].innerHTML > rowB.cells[0].innerHTML) - (rowB.cells[0].innerHTML > rowA.cells[0].innerHTML));
        // Поскольку ссылки на строки таблицы остаются прежними, то они исчезают с прежнего места в таблице,
        // и появляются уже в отсортированном по первому столбцу виде
        table.tBodies[0].append(...sortedRows);
    </script>
</body>
</html>
Цитата Сообщение от nikita55050505 Посмотреть сообщение
почему перед slice просто стоит точка и перед sort тоже
slice() и sort() - методы экземпляра. Поэтому перед ними точка.
https://learn.javascript.ru/object-methods

https://learn.javascript.ru/array-methods

Судя по вопросам, Вам ещё долго изучать основы JS.
Цитата Сообщение от nikita55050505 Посмотреть сообщение
что за оператор =>
https://learn.javascript.ru/fu... ons-arrows
1
23 / 21 / 3
Регистрация: 27.10.2017
Сообщений: 192
15.08.2019, 02:13  [ТС]
Читал учебник с этого сайта, но 2015-го года, пока не обнаружил его свежую версию, у меня было такое же удивление к функциям стрелкам как и к
JavaScript
1
 let
, видимо придётся всё сначала прочитать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.08.2019, 02:13
Помогаю со студенческими работами здесь

Указатели,нужно разобраться в программе
Всем добро времени суток. Учился работать с базами данных по этому видеоуроку: https://www.youtube.com/watch?v=F8aciqcO_Cg вот...

Нужно разобраться в программе, Не могу скомпилировать
Скажу честно - заказал программу, для сдачи в вузе. Теперь не могу в ней разобраться. Как её скомпилировать? В чём ошибка? Вот задание:...

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

Немогу разобраться в программе нужно пожалуйста чуть чуть дописать её!
Уже вроде все написал.И должно работать!! Но не хочет рисовать незнаю почему, если кто нибудь исправит и все выше описанное заработает буду...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru