Методы массивов JavaScript. Демонстрация удаления конкретного элемента с использованием метода splice

Здравствуйте, любители JavaScript-а. Вы уже заметили, что этот язык очень неординарен и в каждом разделе выделяется своими особенностями и необычными техническими решениями. Поэтому сегодняшняя публикация посвящается теме: «JavaScript округление».

После прочтения текущей статьи вы узнаете, для чего необходимо округлять числа, какие методы и свойства в js выполняют эту функцию, а также чем выделяется деление на 0. Не изменяя своим принципам, я прикреплю примеры к ключевым моментам материала и подробно распишу каждое действие. А теперь давайте приступать к обучению!

Важные заметки о числах

Для начала запомните, что в js все виды чисел (дробные и целые) относятся к типу Number . К тому же все они 64-битные, так как хранятся в формате «double precision», который также известен под стандартом IEEE-754.

Создаются численные переменные привычным способом:

var numb = 35; // натуральное число

var drob = 0.93; //десятичное представление

var numb16 = 0xFF; //16-ричная система счисления

Поддерживает и другие числовые представления. Так, еще можно создавать числа с плавающей точкой (их еще иногда называют «числа в научном формате»).

В появилась поддержка очень интересного метода toLocaleString () , который форматирует все числовые параметры по спецификациям, прописанным в ECMA 402. Благодаря этому большие числа, телефонные номера, валюты и даже проценты красиво выводятся в диалоговом окне.

var num = 714000.80;

alert (num.toLocaleString ());

Для работы с элементами типа Number был предусмотрен целый глобальный объект с кучей всевозможных математических функций, имя которого Math .

Помимо этого, существуют и другие методы, которые выполняют округление числовых значений до целых чисел, до десятых, сотых и т.д. Рассмотрим их все подробнее.

Великий и могучий Math

Глобальный объект Math включает в себя огромное количество разнообразных математических и тригонометрических функций. Это очень нужный объект и часто выручает разработчиков при работе с цифровыми данными.

На других платформах существуют аналогии Math. Например, в таких популярных языках, как Java и C#, Math представляет собой класс, который поддерживает все те же стандартные функции. Так что как видите этот инструмент действительно великий и могучий.

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

Math.floor ()

Начну с Math. floor . Обратите внимание на наименование метода. Логически становится понятно, что раз речь идет об округлении, а дословный перевод слова «floor» означает «пол», то данный инструмент округлит обрабатываемые значения в меньшую строну.

Также возможен вариант, когда обработанное число с помощью этой функции осталось прежним. Все потому, что округление осуществляется по нестрогому неравенству (<=). Таким образом, при отработке этой строчки кода:

alert (Math.floor (4.5));

в ответе будет число 4.

Math.ceil ()

Опять-таки посмотрите на название (в такой способ материал быстрее усваивается). Если кто-то не знает, то «ceil» означает «потолок». Значит округление числовых данных будет осуществляться в большую сторону, используя нестрогое неравенство (>=).

alert (Math.ceil (4.5));

Как вы уже догадались, в ответе будет число 5.

Math.round ()

Данный метод округляет дробное число до ближайшего целого. Так, если дробная часть находится в диапазоне от 0 и до 0.5 не включительно, то округление происходит к меньшему значению. А если дробная часть находится в диапазоне от включительно 0.5 и до следующего целого числа, то она округляется к большему целому.

alert (Math.round (4.5));

Надеюсь, все подумали или сказали правильный ответ – 5.

Еще немного методов

В JavaScript также есть и другие 2 метода, которые занимаются округлением числовых представлений. Однако они несколько отличаются.

Речь пойдет о таких инструментах, как toFixed () и toPrecision () . Они отвечают не просто за округление, а за ее точность до определенных знаков. Давайте покопаем глубже.

toFixed ()

С помощью данного механизма можно указывать, до скольких знаков после запятой нужно округлить значение. Метод возвращает результат в виде строки. Ниже я прикрепил вариант с тремя разными вариантами. Проанализируйте полученные ответы.

var num = 5656.9393;

document.writeln (num.toFixed ()); // 5657

document.writeln (num.toFixed (2)); // 5656.94

document.writeln (num.toFixed (7)); // 5656.9393000

Как видно, если не указать аргумента, то toFixed ()) округлит дробное значение до целого числа. В третьей строке выполнено округление до 2-знаков, а в четвертой – из-за параметра «7» было дописано еще три 0.

toPrecision ()

Данный метод действует несколько иначе. На месте аргумента можно оставить как пустое место, так и установить параметр. Однако последний будет округлять числа до указанного количества цифр, не обращая внимания на запятую. Вот какие результаты выдала программа, переписанная с прошлого примера:

var num = 5656.9393;

document.writeln (num.toPrecision ()); // 5656.9393

document.writeln (num.toPrecision (2)); // 5.7e+3

document.writeln (num.toPrecision (7)); // 5656.939

Особенность деления на 0 в js

Как известно из уроков по математике, делить на нуль нельзя. Это правило взяли за основу большинство создателей языков программирования. Поэтому при делении на нуль все программы выдают ошибку.

Однако JavaScript отличился и здесь. Так, во время выполнения такой операции никаких сообщений о баге не возникает…потому что такая операция возвращает «Infinity» !

Почему же так? Как известно из тех же математических наук, чем меньше делитель, тем в результате получается большее число. Именно поэтому создатели данного прототипно-ориентированного языка решили отказаться от шаблонов и пойти своим путем.

Для тех, кто впервые сталкивается со значением Infinity, ниже я объяснил его особенности.

Infinity – означает бесконечность и полностью соответствует математическому знаку ∞.

Может быть отрицательной. Также сохраняются все стандартные правила работы с арифметическими операторами.

alert (12/ 0); // Infinity

alert (12.34/ 0); // Infinity

alert (-3/ 0); // -Infinity

На этом, пожалуй, и закончу. Если вам понравилась публикация, то обязательно подписывайтесь на мой блог. Не жадничайте ссылкой на интересные статьи и делитесь ими с друзьями. Пока-пока!

Всю пользу встроенных методов JavaScript можно оценить только правильно понимая, как они работают. В этой статье мы разберем три метода: slice () , splice () и split () . Даже опытные разработчики часто их путают: возможно из-за того, что все три названия так похожи.

Студентам и начинающим разработчикам: внимательно прочитайте эту статью-об этих трех методах вас могут спросить на собеседовании.

В конце вы найдете конспект информации о всех трех методах. Давайте начнем.

Массивы в JavaScript

Сперва нужно разобраться, как работают массивы JavaScript. Как и в других языках программирования, массивы используются для хранения нескольких единиц данных. Разница в том, что массивы JavaScript могут содержать несколько типов данных одновременно .

Чтобы работать с такими массивами, нам понадобятся JavaScript-методы: например, slice () & splice () . Создать массив можно так:

Let arrayDefinition = ; // Array declaration in JS

Теперь создадим другой массив с данными разного типа:

Let array = ;

В JavaScript можно создавать массивы с разными типами данных: с числами, строками и логическими значениями.

Slice ()

Метод slice () копирует заданную часть массива и возвращает эту скопированную часть в виде нового массива. Исходный массив при этом не изменяется .

Array.slice(from, until);

  • From: Нарезает массив начиная с этого элемента
  • Until: Нарезает массив до этого элемента

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

Array --> 1 // included array --> 2 // included array --> 3 // included array --> "hello world" // not included

Здесь можно запутаться! Вот почему я объявил “until” .

Let newArray = array.slice(0, 3); // Return value is also an array

Наконец я создаю новый массив и связываю его с переменной newArray . Посмотрим результат:

Нарезка массива и добавление элементов в новый массив


Переменная newArray становится новым массивом, оригинальный массив остается без изменений.

Важное примечание: метод Slice() можно использовать и в строках.

Splice ()

Название этого метода похоже на slice(): в таких похожих названиях разработчики часто путаются. Метод splice() добавляет и удаляет элементы из массива, меняя его. Давайте посмотрим, как добавлять и удалять элементы с помощью метода splice() :

Удаление элементов

Чтобы удалить элементы, введите элемент, с которого нужно начать (index) и количество элементов, которые нужно удалить (number of elements) :

Array.splice(index, number of elements);

Параметр Index  - это начальная точка удаления элементов. Элементы с порядковым номером меньше заданного параметра Index не будут удалены:

Array.splice(2); // Every element starting from index 2, will be removed

Если не указать второй параметр, все элементы от заданного параметра Index и до конца будут удалены:

В качестве еще одно примера, я указал 1 в качестве второго параметра: таким образом, каждый раз при повторе метода splice () будет удалять по одному элементу, начиная со второго:

Array.splice(2, 1);

Массив до метода splice ()

Splice () применен один раз:

Элемент 3 удален: следовательно, теперь элемент “hello world” имеет порядковый номер 2

Splice () применен два раза:

На этот раз, был удален элемент “hello world”, потому что его порядковый номер 2

Так можно продолжать до тех пор, пока не останется элементов с порядковым номером 2.

Добавление элементов

Чтобы добавить элементы с помощью splice () , необходимо ввести их в качестве третьего, четвертого и пятого элемента (в зависимости от того, сколько элементов нужно добавить):

Array.splice(index, number of elements, element, element);

В качестве примера, добавим элементы a и b в самое начало массива:

Array.splice(0, 0, "a", "b");


Элементы a и b добавлены в начало массива

Split ()

Методы Slice() и splice() используются для массивов. Метод split() используется для строк . Он разделяет строку на подстроки и возвращает их в виде массива. У этого метода 2 параметра, и оба из них не обязательно указывать .

String.split(separator, limit);

  • Separator: определяет, как строка будет поделена на подстроки: запятой, знаком и т.д.
  • Limit: ограничивает количество подстрок заданным числом

Метод split() не работает напрямую с массивами . Тем не менее, сначала можно преобразовать элементы массива в строки и уже после применить метод split() .

Давайте посмотрим, как это работает.

Сначала преобразуем массив в строку с помощью метода toString() :

Let myString = array.toString();

Затем разделим строку myString запятыми и ограничим количество подстрок до трех. Затем преобразуем строки в массив:

Let newArray = myString.split(",", 3);

В виде массива вернулись первые 3 элемента

Таким образом, элементы массива myString разделены запятыми. Мы поставили ограничение в 3 подстроки, поэтому в качестве массива вернулись первые 3 элемента.

Примечание: Используя команду array.split(""); можно все символы в строке разделить на подстроки.


Все символы разделены на подстроки

Конспект:

Slice ()

  • Копирует элементы из массива
  • Возвращает их в новый массив
  • Не меняет оригинальный массив
  • Нарезает массив с помощью параметров from и until: array.slice (from, until)
  • Не включает параметр, заданный в “until”
  • Используется и в массивах, и в строках

Splice ()

  • Добавляет и удаляет элементы из массива
  • Возвращает массив удаленных элементов
  • Меняет массив
  • Добавление элементов: array.splice (index, number of elements, element)
  • Удаление элементов: array.splice (index, number of elements)
  • Используется только в массивах

Split ()

  • Делит строки на подстроки
  • Возвращает их в виде массива
  • 2 параметра, и оба из них не обязательно указывать: string.split(separator, limit)
  • Не меняет оригинальную строку
  • Используется только в строках

В JavaScript есть еще много других встроенных методов работы с массивами и строками. Если вы научитесь их использовать, программировать станет намного проще.