Javascript.RU

slice

Синтаксис

arrayObj.slice( start[, end] )

Аргументы

start
Индекс элемента в массиве, с которого будет начинаться новый массив.
end
Необязательный параметр. Индекс элемента в массиве, на котором новый массив завершится. При этом последним в новом массиве будет элемент с индексом end-1
  • Если start отрицателен, то он будет трактоваться как arrayObj.length+start (т.е. start'ый элемент с конца массива).
  • Если end отрицателен, то он будет трактоваться как arrayObj.length+end (т.е. end'ый элемент с конца массива).
  • Если второй параметр не указан, то экстракция продолжится до конца массива. Если end < start, то будет создан пустой массив.

Описание, примеры

Данный метод не изменяет исходный массив, а просто возвращает его часть.

Пример: Элементы из середины
var arr = [ 1, 2, 3, 4, 5 ] 

arr.slice(2) // => [3, 4, 5]

arr.slice(1, 4) // => [2, 3, 4]

arr.slice(2, 3) // => [3]
Пример: Отсчет с конца
arr = [1, 2, 3, 4, 5]

arr.slice(-2) // => [4, 5]
arr.slice(arr.length - 2) // то же самое

arr.slice(-3, -1) // [3, 4]
arr.slice(arr.length-3, arr.length-1) // то же самое

Автор: Гость (не зарегистрирован), дата: 12 декабря, 2011 - 21:34
#permalink

А как будет с многомерными массивами?


Автор: Harvey, дата: 25 июня, 2012 - 13:23
#permalink

Для многомерных массивов нужно использовать схожую функцию - splice()


Автор: nero333, дата: 13 ноября, 2012 - 15:10
#permalink

Можете привести пример, как использовать splice() для многомерных массивов?


Автор: Илья Кантор, дата: 29 февраля, 2012 - 13:26
#permalink

Многомерность не учитывается.


Автор: Гость (не зарегистрирован), дата: 14 апреля, 2012 - 12:12
#permalink

start тоже не обязательный параметр. slice без параметров копирует массив


Автор: Гость (не зарегистрирован), дата: 22 августа, 2013 - 05:38
#permalink

Почему нет ни слова о том, что этот метод практически так же работает и для строк?! Что он вообще там есть


Автор: Гость (не зарегистрирован), дата: 30 августа, 2013 - 15:01
#permalink

Наверное потому, что у строк — другой метод с таким же названием. А этот метод для массивов.


Автор: kovalsky (не зарегистрирован), дата: 26 декабря, 2013 - 18:48
#permalink

"Данный метод не изменяет исходный массив" - изменяет!
попробуйте:
var arr = [1,2,3];
arr.splice(1,1)
console.log(arr);


Автор: kovalsky (не зарегистрирован), дата: 27 декабря, 2013 - 15:15
#permalink

Извините, перепутал методы. Всего одна буква а какая разница в поведении.


Автор: Гость (не зарегистрирован), дата: 5 февраля, 2015 - 15:42
#permalink

это што за говностатья? где описание, что именно делает эта функция?


Автор: Ilyas (не зарегистрирован), дата: 28 апреля, 2015 - 13:23
#permalink

slice хороший способ клонировать массив,
Например

var arr1 = [1, 2, 3, 4];
var arr2 = arr1;
var arr3 =arr2.slice(0)

console.assert(arr1 === arr2);
console.assert(arr1 !== arr3);

Автор: Гость (не зарегистрирован), дата: 9 сентября, 2015 - 13:40
#permalink

arr.spice()


Автор: FeelUs, дата: 23 февраля, 2016 - 11:14
#permalink

следующий код

var a = [{x:1},{x:2},{x:3},{x:4},];
var b = a.slice(1,2);
b[0].x=7;
alert(JSON.stringify(a))

выведет

[{"x":1},{"x":7},{"x":3},{"x":4}]

но вот так:

var a = [1,2,3,4];
var b = a.slice(1,2);
b[0]=7;
text(JSON.stringify(a))

уже

[1,2,3,4]

Автор: Гость (не зарегистрирован), дата: 9 июня, 2016 - 11:38
#permalink

Не надо путать копирование по ссылке и копирование по значению


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2022 - 07:35
#permalink

Автор: Гость (не зарегистрирован), дата: 23 сентября, 2024 - 12:26
#permalink

The arrayObj.slice(start[, end]) method returns a portion of an array without Krunker io modifying it. The start argument specifies which element to start with, and end specifies which element to end with. If end is not specified, extraction continues to the end of the array.


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2024 - 12:26
#permalink

The arrayObj.slice(start[, end]) method returns a portion of an array without Krunker io modifying it. The start argument specifies which element to start with, and end specifies which element to end with. If end is not specified, extraction continues to the end of the array.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
10 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum