Array.prototype.some()
Содержание:
- Примеры
- Удаляет 0 элементов по индексу 2 и вставляет «drum»
- Удаляет 1 элемент по индексу 3
- Удаляет 1 элемент по индексу 2 и вставляет «trumpet»
- Удаляет 2 элемента начиная с индекса 0 и вставляет «parrot», «anemone» и «blue»
- Удаляет 2 элемента начиная с индекса 2
- Удаляет 1 элемент по индексу -2
- Удаляет все элементы после индекса 2 (включительно)
- # splice
- Declaration
- More
- Совместимость с браузерами
- Prompt Box
- Перебор элементов
- Images
- JS Tutorial
- Сумісність з веб-переглядачами
- Эффективность
- Methods pop/push, shift/unshift
Примеры
Удаляет 0 элементов по индексу 2 и вставляет «drum»
var myFish = ; var removed = myFish.splice(2, 0, 'drum'); // myFish равен // removed равен [], ничего не удалено
Удаляет 1 элемент по индексу 3
var myFish = ; var removed = myFish.splice(3, 1); // removed равен // myFish равен
Удаляет 1 элемент по индексу 2 и вставляет «trumpet»
var myFish = ; var removed = myFish.splice(2, 1, 'trumpet'); // myFish равен // removed равен
Удаляет 2 элемента начиная с индекса 0 и вставляет «parrot», «anemone» и «blue»
var myFish = ; var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); // myFish равен // removed равен
Удаляет 2 элемента начиная с индекса 2
var myFish = ; var removed = myFish.splice(myFish.length - 3, 2); // myFish равен // removed равен
Удаляет 1 элемент по индексу -2
var myFish = ; var removed = myFish.splice(-2, 1); // myFish равен // removed равен s
Удаляет все элементы после индекса 2 (включительно)
var myFish = ; var removed = myFish.splice(2); // myFish равен // removed равен
# splice
Метод изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.
Синтаксис:
Параметры:
- start — Индекс, по которому начинать изменять массив. Если больше длины массива, реальный индекс будет установлен на длину массива. Если отрицателен, указывает индекс элемента с конца.
- deleteCount — Целое число, показывающее количество старых удаляемых из массива элементов. Если равен 0, элементы не удаляются. В этом случае вы должны указать как минимум один новый элемент. Если больше количества элементов, оставшихся в массиве, начиная с индекса , то будут удалены все элементы до конца массива.
- itemN — Необязательные параметры. Добавляемые к массиву элементы. Если вы не укажете никакого элемента, просто удалит элементы из массива.
Возвращаемое значение
Массив, содержащий удалённые элементы. Если будет удалён только один элемент, вернётся массив из одного элемента. Если никакие элементы не будут удалены, вернётся пустой массив.
Описание
Если количество указанных вставляемых элементов будет отличным от количества удаляемых элементов, массив изменит длину после вызова.
Declaration
There are two syntaxes for creating an empty array:
Almost all the time, the second syntax is used. We can supply initial elements in the brackets:
Array elements are numbered, starting with zero.
We can get an element by its number in square brackets:
We can replace an element:
…Or add a new one to the array:
The total count of the elements in the array is its :
We can also use to show the whole array.
An array can store elements of any type.
For instance:
Trailing comma
An array, just like an object, may end with a comma:
The “trailing comma” style makes it easier to insert/remove items, because all lines become alike.
More
Fullscreen VideoModal BoxesDelete ModalTimelineScroll IndicatorProgress BarsSkill BarRange SlidersTooltipsDisplay Element HoverPopupsCollapsibleCalendarHTML IncludesTo Do ListLoadersStar RatingUser RatingOverlay EffectContact ChipsCardsFlip CardProfile CardProduct CardAlertsCalloutNotesLabelsCirclesStyle HRCouponList GroupList Without BulletsResponsive TextCutout TextGlowing TextFixed FooterSticky ElementEqual HeightClearfixResponsive FloatsSnackbarFullscreen WindowScroll DrawingSmooth ScrollGradient Bg ScrollSticky HeaderShrink Header on ScrollPricing TableParallaxAspect RatioResponsive IframesToggle Like/DislikeToggle Hide/ShowToggle Dark ModeToggle TextToggle ClassAdd ClassRemove ClassActive ClassTree ViewRemove PropertyOffline DetectionFind Hidden ElementRedirect WebpageZoom HoverFlip BoxCenter VerticallyCenter Button in DIVTransition on HoverArrowsShapesDownload LinkFull Height ElementBrowser WindowCustom ScrollbarHide ScrollbarDevice LookContenteditable BorderPlaceholder ColorText Selection ColorBullet ColorVertical LineDividersAnimate IconsCountdown TimerTypewriterComing Soon PageChat MessagesPopup Chat WindowSplit ScreenTestimonialsSection CounterQuotes SlideshowClosable List ItemsTypical Device BreakpointsDraggable HTML ElementJS Media QueriesSyntax HighlighterJS AnimationsGet Iframe Elements
Совместимость с браузерами
Update compatibility data on GitHub
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome для Android | Firefox для Android | Opera для Android | Safari on iOS | Samsung Internet | Node.js | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome Полная поддержка 1 |
Edge Полная поддержка 12 |
Firefox Полная поддержка 1 |
IE Полная поддержка 5.5 Замечания |
Opera Полная поддержка 4 |
Safari Полная поддержка 1 |
WebView Android Полная поддержка 1 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 4 |
Opera Android Полная поддержка 10.1 |
Safari iOS Полная поддержка 1 |
Samsung Internet Android Полная поддержка 1.0 |
nodejs Полная поддержка 0.1.100 |
Обратная совместимость
В JavaScript 1.2 метод возвращал удалённый элемент только если был удалён один элемент (параметр равен 1); в противном случае метод возвращал массив с удалёнными элементами
Обратите внимание, что последним браузером, использующим JavaScript 1.2, был Netscape Navigator 4, так что вы можете считать, что всегда возвращает массив
Prompt Box
A prompt box is often used if you want the user to input a value before entering a page.
When a prompt box pops up, the user will have to click either «OK» or «Cancel»
to proceed after entering an input value.
If the user clicks «OK» the box returns the input value. If the user clicks «Cancel» the box returns null.
window.prompt(«sometext«,»defaultText«);
The method can be written without the window prefix.
Example
var person = prompt(«Please enter your name», «Harry Potter»);if
(person == null || person == «») { txt = «User cancelled
the prompt.»;} else { txt = «Hello » + person + «!
How are you today?»;}
Перебор элементов
Одним из самых старых способов перебора элементов массива является цикл for по цифровым индексам:
Но для массивов возможен и другой вариант цикла, :
Цикл не предоставляет доступа к номеру текущего элемента, только к его значению, но в большинстве случаев этого достаточно. А также это короче.
Технически, так как массив является объектом, можно использовать и вариант :
Но на самом деле это – плохая идея. Существуют скрытые недостатки этого способа:
-
Цикл выполняет перебор всех свойств объекта, а не только цифровых.
В браузере и других программных средах также существуют так называемые «псевдомассивы» – объекты, которые выглядят, как массив. То есть, у них есть свойство и индексы, но они также могут иметь дополнительные нечисловые свойства и методы, которые нам обычно не нужны. Тем не менее, цикл выведет и их. Поэтому, если нам приходится иметь дело с объектами, похожими на массив, такие «лишние» свойства могут стать проблемой.
-
Цикл оптимизирован под произвольные объекты, не массивы, и поэтому в 10-100 раз медленнее. Увеличение скорости выполнения может иметь значение только при возникновении узких мест. Но мы всё же должны представлять разницу.
В общем, не следует использовать цикл для массивов.
Images
SlideshowSlideshow GalleryModal ImagesLightboxResponsive Image GridImage GridTab GalleryImage Overlay FadeImage Overlay SlideImage Overlay ZoomImage Overlay TitleImage Overlay IconImage EffectsBlack and White ImageImage TextImage Text BlocksTransparent Image TextFull Page ImageForm on ImageHero ImageBlur Background ImageChange Bg on ScrollSide-by-Side ImagesRounded ImagesAvatar ImagesResponsive ImagesCenter ImagesThumbnailsBorder Around ImageMeet the TeamSticky ImageFlip an ImageShake an ImagePortfolio GalleryPortfolio with FilteringImage ZoomImage Magnifier GlassImage Comparison Slider
JS Tutorial
JS HOMEJS IntroductionJS Where ToJS OutputJS StatementsJS SyntaxJS CommentsJS VariablesJS OperatorsJS ArithmeticJS AssignmentJS Data TypesJS FunctionsJS ObjectsJS EventsJS StringsJS String MethodsJS NumbersJS Number MethodsJS ArraysJS Array MethodsJS Array SortJS Array IterationJS DatesJS Date FormatsJS Date Get MethodsJS Date Set MethodsJS MathJS RandomJS BooleansJS ComparisonsJS ConditionsJS SwitchJS Loop ForJS Loop WhileJS BreakJS Type ConversionJS BitwiseJS RegExpJS ErrorsJS ScopeJS HoistingJS Strict ModeJS this KeywordJS LetJS ConstJS Arrow FunctionJS DebuggingJS Style GuideJS Best PracticesJS MistakesJS PerformanceJS Reserved WordsJS VersionsJS Version ES5JS Version ES6JS JSON
Сумісність з веб-переглядачами
The compatibility table in this page is generated from structured data. If you’d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | Node.js | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome Full support 45 |
Edge Full support 12 |
Firefox Full support 31 |
IE No support No |
Opera Full support 32 |
Safari Full support 8 |
WebView Android Full support 45 |
Chrome Android Full support 45 |
Firefox Android Full support 31 |
Opera Android Full support 32 |
Safari iOS Full support 8 |
Samsung Internet Android Full support 5.0 |
nodejs Full support 4.0.0 |
Эффективность
Методы выполняются быстро, а методы – медленно.
Почему работать с концом массива быстрее, чем с его началом? Давайте посмотрим, что происходит во время выполнения:
Просто взять и удалить элемент с номером недостаточно. Нужно также заново пронумеровать остальные элементы.
Операция должна выполнить 3 действия:
- Удалить элемент с индексом .
- Сдвинуть все элементы влево, заново пронумеровать их, заменив на , на и т.д.
- Обновить свойство .
Чем больше элементов содержит массив, тем больше времени потребуется для того, чтобы их переместить, больше операций с памятью.
То же самое происходит с : чтобы добавить элемент в начало массива, нам нужно сначала сдвинуть существующие элементы вправо, увеличивая их индексы.
А что же с ? Им не нужно ничего перемещать. Чтобы удалить элемент в конце массива, метод очищает индекс и уменьшает значение .
Действия при операции :
Метод не требует перемещения, потому что остальные элементы остаются с теми же индексами. Именно поэтому он выполняется очень быстро.
Аналогично работает метод .
Methods pop/push, shift/unshift
A queue is one of the most common uses of an array. In computer science, this means an ordered collection of elements which supports two operations:
- appends an element to the end.
- get an element from the beginning, advancing the queue, so that the 2nd element becomes the 1st.
Arrays support both operations.
In practice we need it very often. For example, a queue of messages that need to be shown on-screen.
There’s another use case for arrays – the data structure named stack.
It supports two operations:
- adds an element to the end.
- takes an element from the end.
So new elements are added or taken always from the “end”.
A stack is usually illustrated as a pack of cards: new cards are added to the top or taken from the top:
For stacks, the latest pushed item is received first, that’s also called LIFO (Last-In-First-Out) principle. For queues, we have FIFO (First-In-First-Out).
Arrays in JavaScript can work both as a queue and as a stack. They allow you to add/remove elements both to/from the beginning or the end.
In computer science the data structure that allows this, is called deque.
Methods that work with the end of the array:
-
Extracts the last element of the array and returns it:
-
Append the element to the end of the array:
The call is equal to .
Methods that work with the beginning of the array:
-
Extracts the first element of the array and returns it:
-
Add the element to the beginning of the array:
Methods and can add multiple elements at once: