Skip to content

Commit e5ad9fd

Browse files
authored
refactor: use .find where possible instead of .filter (#7815)
1 parent 44d3443 commit e5ad9fd

File tree

13 files changed

+25
-27
lines changed

13 files changed

+25
-27
lines changed

src/components-shared/get-element-params.mjs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,7 @@ function getParams(element, propName, propValue) {
6969
attrsList.push({ name: propName, value: isObject(propValue) ? { ...propValue } : propValue });
7070
}
7171
attrsList.forEach((attr) => {
72-
const moduleParam = modulesParamsList.filter(
73-
(mParam) => attr.name.indexOf(`${mParam}-`) === 0,
74-
)[0];
72+
const moduleParam = modulesParamsList.find((mParam) => attr.name.startsWith(`${mParam}-`));
7573
if (moduleParam) {
7674
const parentObjName = attrToProp(moduleParam);
7775
const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]);

src/core/core.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,9 @@ class Swiper {
254254

255255
getSlideIndexByData(index) {
256256
return this.getSlideIndex(
257-
this.slides.filter(
258-
(slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === index,
259-
)[0],
257+
this.slides.find(
258+
(slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === index
259+
),
260260
);
261261
}
262262

src/core/events/onTouchEnd.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default function onTouchEnd(event) {
1313
if (e.pointerId !== data.pointerId) return;
1414
targetTouch = e;
1515
} else {
16-
targetTouch = [...e.changedTouches].filter((t) => t.identifier === data.touchId)[0];
16+
targetTouch = [...e.changedTouches].find((t) => t.identifier === data.touchId);
1717
if (!targetTouch || targetTouch.identifier !== data.touchId) return;
1818
}
1919

src/core/events/onTouchMove.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default function onTouchMove(event) {
2020

2121
let targetTouch;
2222
if (e.type === 'touchmove') {
23-
targetTouch = [...e.changedTouches].filter((t) => t.identifier === data.touchId)[0];
23+
targetTouch = [...e.changedTouches].find((t) => t.identifier === data.touchId);
2424
if (!targetTouch || targetTouch.identifier !== data.touchId) return;
2525
} else {
2626
targetTouch = e;

src/core/loop/loopFix.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export default function loopFix({
6868

6969
if (typeof activeSlideIndex === 'undefined') {
7070
activeSlideIndex = swiper.getSlideIndex(
71-
slides.filter((el) => el.classList.contains(params.slideActiveClass))[0],
71+
slides.find((el) => el.classList.contains(params.slideActiveClass)),
7272
);
7373
} else {
7474
activeIndex = activeSlideIndex;

src/core/slide/slideToLoop.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ export default function slideToLoop(index = 0, speed, runCallbacks = true, inter
2121
let targetSlideIndex;
2222
if (gridEnabled) {
2323
const slideIndex = newIndex * swiper.params.grid.rows;
24-
targetSlideIndex = swiper.slides.filter(
24+
targetSlideIndex = swiper.slides.find(
2525
(slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex,
26-
)[0].column;
26+
).column;
2727
} else {
2828
targetSlideIndex = swiper.getSlideIndexByData(newIndex);
2929
}
@@ -70,9 +70,9 @@ export default function slideToLoop(index = 0, speed, runCallbacks = true, inter
7070

7171
if (gridEnabled) {
7272
const slideIndex = newIndex * swiper.params.grid.rows;
73-
newIndex = swiper.slides.filter(
73+
newIndex = swiper.slides.find(
7474
(slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex,
75-
)[0].column;
75+
).column;
7676
} else {
7777
newIndex = swiper.getSlideIndexByData(newIndex);
7878
}

src/core/update/updateActiveIndex.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export default function updateActiveIndex(newActiveIndex) {
8686
if (swiper.virtual && params.virtual.enabled && params.loop) {
8787
realIndex = getVirtualRealIndex(activeIndex);
8888
} else if (gridEnabled) {
89-
const firstSlideInColumn = swiper.slides.filter((slideEl) => slideEl.column === activeIndex)[0];
89+
const firstSlideInColumn = swiper.slides.find((slideEl) => slideEl.column === activeIndex);
9090
let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
9191
if (Number.isNaN(activeSlideIndex)) {
9292
activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);

src/core/update/updateSlidesClasses.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ export default function updateSlidesClasses() {
3636
}
3737
} else {
3838
if (gridEnabled) {
39-
activeSlide = slides.filter((slideEl) => slideEl.column === activeIndex)[0];
40-
nextSlide = slides.filter((slideEl) => slideEl.column === activeIndex + 1)[0];
41-
prevSlide = slides.filter((slideEl) => slideEl.column === activeIndex - 1)[0];
39+
activeSlide = slides.find((slideEl) => slideEl.column === activeIndex);
40+
nextSlide = slides.find((slideEl) => slideEl.column === activeIndex + 1);
41+
prevSlide = slides.find((slideEl) => slideEl.column === activeIndex - 1);
4242
} else {
4343
activeSlide = slides[activeIndex];
4444
}

src/modules/autoplay/autoplay.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ export default function Autoplay({ swiper, extendParams, on, emit, params }) {
6666
const getSlideDelay = () => {
6767
let activeSlideEl;
6868
if (swiper.virtual && swiper.params.virtual.enabled) {
69-
activeSlideEl = swiper.slides.filter((slideEl) =>
69+
activeSlideEl = swiper.slides.find((slideEl) =>
7070
slideEl.classList.contains('swiper-slide-active'),
71-
)[0];
71+
);
7272
} else {
7373
activeSlideEl = swiper.slides[swiper.activeIndex];
7474
}

src/modules/hash-navigation/hash-navigation.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ export default function HashNavigation({ swiper, extendParams, emit, on }) {
1212
watchState: false,
1313
getSlideIndex(_s, hash) {
1414
if (swiper.virtual && swiper.params.virtual.enabled) {
15-
const slideWithHash = swiper.slides.filter(
15+
const slideWithHash = swiper.slides.find(
1616
(slideEl) => slideEl.getAttribute('data-hash') === hash,
17-
)[0];
17+
);
1818
if (!slideWithHash) return 0;
1919
const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
2020
return index;

src/modules/pagination/pagination.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,10 +365,10 @@ export default function Pagination({ swiper, extendParams, on, emit }) {
365365
el = [...swiper.el.querySelectorAll(params.el)];
366366
// check if it belongs to another nested Swiper
367367
if (el.length > 1) {
368-
el = el.filter((subEl) => {
368+
el = el.find((subEl) => {
369369
if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;
370370
return true;
371-
})[0];
371+
});
372372
}
373373
}
374374
if (Array.isArray(el) && el.length === 1) el = el[0];

src/modules/thumbs/thumbs.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@ export default function Thumb({ swiper, extendParams, on }) {
125125
let newThumbsIndex;
126126
let direction;
127127
if (thumbsSwiper.params.loop) {
128-
const newThumbsSlide = thumbsSwiper.slides.filter(
128+
const newThumbsSlide = thumbsSwiper.slides.find(
129129
(slideEl) => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`,
130-
)[0];
130+
);
131131
newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
132132

133133
direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';

src/shared/effect-virtual-transition-end.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ export default function effectVirtualTransitionEnd({
1010
const getSlide = (el) => {
1111
if (!el.parentElement) {
1212
// assume shadow root
13-
const slide = swiper.slides.filter(
13+
const slide = swiper.slides.find(
1414
(slideEl) => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode,
15-
)[0];
15+
);
1616
return slide;
1717
}
1818
return el.parentElement;

0 commit comments

Comments
 (0)