использование метода .slice в массиве
781 просмотра
1 ответ
Я практикую раздел массива JavaScript Koan, и я не до конца понимаю, почему эти ответы верны. Я добавил свои предположения ниже, если кто-то может уточнить / сообщить мне, если я ошибаюсь:
it("should slice arrays", function () {
var array = ["peanut", "butter", "and", "jelly"];
expect(array.slice(3, 0)).toEqual([]);
Почему бы не по крайней мере нарезать «желе», так как срез начинается с 3? Как отсечение 0 делает его пустым вместо этого?
expect(array.slice(3, 100)).toEqual(["jelly"]);
Если обрезанный индекс выходит за пределы того, что в настоящее время существует в массиве, означает ли это, что новый массив, созданный из среза, будет содержать все индексы, начиная с 3 до конца массива?
expect(array.slice(5, 1)).toEqual([undefined];
Будет ли он всегда неопределенным, если начальный индекс не существует в массиве?
});
Автор: RAgod
Источник
Размещён: 12.11.2019 09:13
Ответы (1)
1 плюс
Вторым аргументом Array.slice()
является верхняя граница среза.
Думайте об этом как array.slice(lowestIndex, highestIndex)
.
Когда вы выполняете разрезание от индекса 3 до индекса 100, есть один элемент (в вашем случае) с индексами> = 3 и <100, поэтому вы получаете массив с этим одним элементом. Когда вы пытаетесь взять фрагмент из индекса 3 в индекс 0, не может быть никаких элементов, которые удовлетворяют условиям index> = 3 и <0, поэтому вы получаете пустой массив.
--РЕДАКТИРОВАТЬ--
Кроме того, array.slice()
никогда не должен возвращать неопределенный. Это одно из преимуществ его использования. Если в массиве нет совпадающих значений, вы просто возвращаете пустой массив. Даже если вы скажете var a = new Array()
и не добавите к нему никаких значений, вызов a.slice(0,1)
просто вернет вам пустой массив. Нарезка из-за пределов массива также просто возвращает пустой массив. a.slice(250)
вернется, []
тогда как a[250]
будет неопределенным.
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- javascript Удаление элементов с помощью Array.map в JavaScript
- javascript Прокрутка переполненных DIV с помощью JavaScript
- javascript API Карт Google - проблемы с классом GLatLngBounds
- javascript Проверка десятичных чисел в JavaScript - IsNumeric ()
- slice Я не понимаю нарезки с отрицательными границами в Python. Как это должно работать?
- slice Понимание обозначения среза
- slice Python создать объект среза из строки
- slice перевернуть строку в Python
- slice JavaScript chop / slice / обрезать последний символ в строке
- slice Как получить фрагмент хеша из хеша?
- slice В чем разница между String.slice и String.substring?
- slice Python: реализация среза в __getitem__
- slice Python - случайное разбиение списка на n почти равных частей
- slice Слайс Python, как, я знаю срез Python, но как я могу использовать для него встроенный объект среза?