Baseline Widely available
СводкаÐеÑод findIndex()
возвÑаÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑ Ð² маÑÑиве, еÑли ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑдовлеÑвоÑÑÐµÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð¿ÑовеÑÑÑÑей ÑÑнкÑии. РпÑоÑивном ÑлÑÑае возвÑаÑаеÑÑÑ -1.
Также ÑмоÑÑиÑе меÑод find()
, коÑоÑÑй возвÑаÑÐ°ÐµÑ Ð·Ð½Ð°Ñение найденного в маÑÑиве ÑлеменÑа вмеÑÑо его индекÑа.
arr.findIndex(callback[, thisArg])ÐаÑамеÑÑÑ
callback
ФÑнкÑиÑ, вÑзÑваÑÑаÑÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ знаÑÐµÐ½Ð¸Ñ Ð² маÑÑиве, пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑи аÑгÑменÑа:
element
ТекÑÑий обÑабаÑÑваемÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² маÑÑиве.
index
ÐÐ½Ð´ÐµÐºÑ ÑекÑÑего обÑабаÑÑваемого ÑлеменÑа в маÑÑиве.
array
ÐаÑÑив, по коÑоÑÐ¾Ð¼Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ Ð¿ÑÐ¾Ñ Ð¾Ð´.
thisArg
ÐеобÑзаÑелÑнÑй паÑамеÑÑ. ÐнаÑение, иÑполÑзÑемое в каÑеÑÑве this
пÑи вÑполнении ÑÑнкÑии callback
.
ÐеÑод findIndex
вÑзÑÐ²Ð°ÐµÑ Ð¿ÐµÑеданнÑÑ ÑÑнкÑÐ¸Ñ callback
один Ñаз Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа, пÑиÑÑÑÑÑвÑÑÑего в маÑÑиве, до ÑеÑ
поÑ, пока она не веÑнÑÑ true
. ÐÑли Ñакой ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ð°Ð¹Ð´ÐµÐ½, меÑод findIndex
немедленно веÑнÑÑ Ð¸Ð½Ð´ÐµÐºÑ ÑÑого ÑлеменÑа. РпÑоÑивном ÑлÑÑае, меÑод findIndex
веÑнÑÑ -1. ФÑнкÑÐ¸Ñ callback
вÑзÑваеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов маÑÑива, имеÑÑиÑ
пÑиÑвоеннÑе знаÑениÑ; она не вÑзÑваеÑÑÑ Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов, коÑоÑÑе бÑли ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¸Ð»Ð¸ коÑоÑÑм знаÑÐµÐ½Ð¸Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не пÑиÑваивалиÑÑ.
ФÑнкÑÐ¸Ñ callback
вÑзÑваеÑÑÑ Ñ ÑÑÐµÐ¼Ñ Ð°ÑгÑменÑами: знаÑением ÑлеменÑа, индекÑом ÑлеменÑа и маÑÑивом, по коÑоÑÐ¾Ð¼Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ Ð¿ÑоÑ
од.
ÐÑли в меÑод findIndex
бÑл пеÑедан паÑамеÑÑ thisArg
, пÑи вÑзове callback
он бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве знаÑÐµÐ½Ð¸Ñ this
. РпÑоÑивном ÑлÑÑае в каÑеÑÑве знаÑÐµÐ½Ð¸Ñ this
бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð·Ð½Ð°Ñение undefined
.
ÐеÑод findIndex
не изменÑÐµÑ Ð¼Ð°ÑÑив, Ð´Ð»Ñ ÐºÐ¾ÑоÑого он бÑл вÑзван.
Ðиапазон ÑлеменÑов, обÑабаÑÑваемÑÑ
меÑодом findIndex
, ÑÑÑанавливаеÑÑÑ Ð´Ð¾ пеÑвого вÑзова ÑÑнкÑии callback
. ÐлеменÑÑ, добавленнÑе в маÑÑив поÑле наÑала вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÑода findIndex
, не бÑдÑÑ Ð¿Ð¾ÑеÑÐµÐ½Ñ ÑÑнкÑией callback
. ÐÑли ÑÑÑеÑÑвÑÑÑие, непоÑеÑение ÑлеменÑÑ Ð¼Ð°ÑÑива изменÑÑÑÑÑ ÑÑнкÑией callback
, иÑ
знаÑениÑ, пеÑеданнÑе в ÑÑнкÑиÑ, бÑдÑÑ Ð·Ð½Ð°ÑениÑми на ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, когда меÑод findIndex
поÑеÑÐ¸Ñ Ð¸Ñ
; ÑдалÑннÑе ÑлеменÑÑ Ð¿Ð¾ÑеÑÐµÐ½Ñ Ð½Ðµ бÑдÑÑ.
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸Ñ Ð² маÑÑиве Ð¸Ð½Ð´ÐµÐºÑ ÑлеменÑа, ÑвлÑÑÑийÑÑ Ð¿ÑоÑÑÑм ÑиÑлом (либо возвÑаÑÐ°ÐµÑ -1, еÑли в маÑÑиве Ð½ÐµÑ Ð¿ÑоÑÑÑÑ ÑиÑел).
function isPrime(element, index, array) {
var start = 2;
while (start <= Math.sqrt(element)) {
if (element % start++ < 1) {
return false;
}
}
return element > 1;
}
console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, не найдено
console.log([4, 6, 7, 12].findIndex(isPrime)); // 2
ÐолиÑил
ÐÑÐ¾Ñ Ð¼ÐµÑод бÑл добавлен в ÑпеÑиÑикаÑии ECMAScript 6 и пока Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпен во вÑÐµÑ ÑеализаÑиÑÑ JavaScript. Ðднако, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑледÑÑÑий кÑÑоÑек кода в каÑеÑÑве полиÑила:
if (!Array.prototype.findIndex) {
Array.prototype.findIndex = function (predicate) {
if (this == null) {
throw new TypeError(
"Array.prototype.findIndex called on null or undefined",
);
}
if (typeof predicate !== "function") {
throw new TypeError("predicate must be a function");
}
var list = Object(this);
var length = list.length >>> 0;
var thisArg = arguments[1];
var value;
for (var i = 0; i < length; i++) {
value = list[i];
if (predicate.call(thisArg, value, i, list)) {
return i;
}
}
return -1;
};
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
Array.prototype.find()
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑArray.prototype.indexOf()
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4