Baseline Widely available
ÐеÑод some()
пÑовеÑÑеÑ, ÑдовлеÑвоÑÑÐµÑ Ð»Ð¸ какой-либо ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива ÑÑловиÑ, Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð² пеÑедаваемой ÑÑнкÑии.
ÐÑимеÑание: ÐеÑод возвÑаÑÐ°ÐµÑ false
пÑи лÑбом ÑÑловии Ð´Ð»Ñ Ð¿ÑÑÑого маÑÑива.
const array = [1, 2, 3, 4, 5];
// Checks whether an element is even
const even = (element) => element % 2 === 0;
console.log(array.some(even));
// Expected output: true
СинÑакÑиÑ
arr.some(callback(element[, index[, array]])[, thisArg])ÐаÑамеÑÑÑ
callback
ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки каждого ÑлеменÑа, пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑи аÑгÑменÑа:
element
ТекÑÑий обÑабаÑÑваемÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива.
index
ÐеобÑзаÑелÑнÑй
ÐÐ½Ð´ÐµÐºÑ ÑекÑÑего обÑабаÑÑваемого ÑлеменÑа маÑÑива.
array
ÐеобÑзаÑелÑнÑй
ÐаÑÑив, по коÑоÑÐ¾Ð¼Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ Ð¿ÑÐ¾Ñ Ð¾Ð´.
thisArg
ÐеобÑзаÑелÑнÑй
ÐнаÑение, иÑполÑзÑемое в каÑеÑÑве this
пÑи вÑполнении ÑÑнкÑии callback
.
true
, еÑли ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки возвÑаÑÐ°ÐµÑ truthy знаÑение Ñ
оÑÑ Ð±Ñ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива. ÐнаÑе, false
.
ÐеÑод some()
вÑзÑÐ²Ð°ÐµÑ Ð¿ÐµÑеданнÑÑ ÑÑнкÑÐ¸Ñ callback
один Ñаз Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа, пÑиÑÑÑÑÑвÑÑÑего в маÑÑиве до ÑеÑ
поÑ, пока не найдÑÑ Ñакой, Ð´Ð»Ñ ÐºÐ¾ÑоÑого callback
веÑнÑÑ Ð¸ÑÑинное знаÑение (знаÑение, ÑÑановÑÑееÑÑ ÑавнÑм true
пÑи пÑиведении его к ÑÐ¸Ð¿Ñ Boolean
). ÐÑли Ñакой ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ð°Ð¹Ð´ÐµÐ½, меÑод some()
немедленно веÑнÑÑ true
. РпÑоÑивном ÑлÑÑае, еÑли callback
веÑнÑÑ false
Ð´Ð»Ñ Ð²ÑеÑ
ÑлеменÑов маÑÑива, меÑод some()
веÑнÑÑ false
. ФÑнкÑÐ¸Ñ callback
вÑзÑваеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов маÑÑива, имеÑÑиÑ
пÑиÑвоеннÑе знаÑениÑ; она не вÑзÑваеÑÑÑ Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов, коÑоÑÑе бÑли ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¸Ð»Ð¸ коÑоÑÑм знаÑÐµÐ½Ð¸Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не пÑиÑваивалиÑÑ.
ФÑнкÑÐ¸Ñ callback
вÑзÑваеÑÑÑ Ñ ÑÑÐµÐ¼Ñ Ð°ÑгÑменÑами: знаÑением ÑлеменÑа, индекÑом ÑлеменÑа и маÑÑивом, по коÑоÑÐ¾Ð¼Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ Ð¿ÑоÑ
од.
ÐÑли в меÑод some()
бÑл пеÑедан паÑамеÑÑ thisArg
, пÑи вÑзове callback
он бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве знаÑÐµÐ½Ð¸Ñ this
. РпÑоÑивном ÑлÑÑае в каÑеÑÑве знаÑÐµÐ½Ð¸Ñ this
бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð·Ð½Ð°Ñение undefined
. РконеÑном иÑоге, знаÑение this
, наблÑдаемое из ÑÑнкÑии callback
, опÑеделÑеÑÑÑ ÑоглаÑно обÑÑнÑм пÑавилам опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ this
, видимого из ÑÑнкÑии.
ÐеÑод some()
не изменÑÐµÑ Ð¼Ð°ÑÑив, Ð´Ð»Ñ ÐºÐ¾ÑоÑого он бÑл вÑзван.
Ðиапазон ÑлеменÑов, обÑабаÑÑваемÑÑ
меÑодом some()
, ÑÑÑанавливаеÑÑÑ Ð´Ð¾ пеÑвого вÑзова ÑÑнкÑии callback
. ÐлеменÑÑ, добавленнÑе в маÑÑив поÑле наÑала вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÑода some()
, не бÑдÑÑ Ð¿Ð¾ÑеÑÐµÐ½Ñ ÑÑнкÑией callback
. ÐÑли ÑÑÑеÑÑвÑÑÑие ÑлеменÑÑ Ð¼Ð°ÑÑива изменÑÑÑÑ, знаÑениÑ, пеÑеданнÑе в ÑÑнкÑÐ¸Ñ callback
, бÑдÑÑ Ð·Ð½Ð°ÑениÑми на ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, когда меÑод some()
поÑеÑÐ¸Ñ Ð¸Ñ
; ÑдалÑннÑе ÑлеменÑÑ Ð¿Ð¾ÑеÑÐµÐ½Ñ Ð½Ðµ бÑдÑÑ.
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿ÑовеÑÑÐµÑ Ð½Ð°Ð»Ð¸Ñие в маÑÑиве ÑлеменÑа, коÑоÑÑй болÑÑе 10.
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true
ÐÑовеÑка ÑлеменÑов маÑÑива Ñ Ð¸ÑполÑзованием ÑÑÑелоÑнÑÑ
ÑÑнкÑий
СÑÑелоÑнÑе ÑÑнкÑии пÑедоÑÑавлÑÑÑ Ð±Ð¾Ð»ÐµÐµ кÑаÑкий ÑинÑакÑÐ¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ Ð¿ÑовеÑок.
[2, 5, 8, 1, 4].some((elem) => elem > 10); // false
[12, 5, 8, 1, 4].some((elem) => elem > 10); // true
ÐÑовеÑка налиÑÐ¸Ñ ÑлеменÑа в маÑÑиве
ЧÑÐ¾Ð±Ñ Ð¸Ð¼Ð¸ÑиÑоваÑÑ ÑÑнкÑÐ¸Ñ Ð¼ÐµÑода includes()
, ÑÑа полÑзоваÑелÑÑÐºÐ°Ñ ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true, еÑли ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑÑÑеÑÑвÑÐµÑ Ð² маÑÑиве:
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability(arr, val) {
return arr.some(function (arrVal) {
return val === arrVal;
});
}
checkAvailability(fruits, "kela"); // false
checkAvailability(fruits, "banana"); // true
ÐÑовеÑка налиÑÐ¸Ñ ÑлеменÑа в маÑÑиве Ñ Ð¸ÑполÑзованием ÑÑÑелоÑной ÑÑнкÑии
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability(arr, val) {
return arr.some((arrVal) => val === arrVal);
}
checkAvailability(fruits, "kela"); // false
checkAvailability(fruits, "banana"); // true
ÐÑиведение знаÑÐµÐ½Ð¸Ñ Ðº логиÑеÑÐºÐ¾Ð¼Ñ ÑипÑ
const TRUTHY_VALUES = [true, "true", 1];
function getBoolean(value) {
"use strict";
if (typeof value === "string") {
value = value.toLowerCase().trim();
}
return TRUTHY_VALUES.some(function (t) {
return t === value;
});
}
getBoolean(false); // false
getBoolean("false"); // false
getBoolean(1); // true
getBoolean("true"); // true
ÐолиÑил
ÐеÑод some()
бÑл добавлен к ÑÑандаÑÑÑ ECMA-262 в 5-м издании; поÑÑÐ¾Ð¼Ñ Ð¾Ð½ Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ пÑиÑÑÑÑÑвоваÑÑ Ð² дÑÑгиÑ
ÑеализаÑиÑÑ
ÑÑандаÑÑа. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑабоÑаÑÑ Ñ Ð½Ð¸Ð¼, добавив ÑледÑÑÑий код в наÑало ваÑиÑ
ÑкÑипÑов, он позволÑÐµÑ Ð¸ÑполÑзоваÑÑ some()
в ÑеализаÑиÑÑ
, коÑоÑÑе не поддеÑживаÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑод. ÐÑÐ¾Ñ Ð°Ð»Ð³Ð¾ÑиÑм ÑвлÑеÑÑÑ ÑоÑно Ñем, ÑÑо опиÑан в ECMA-262 5-го изданиÑ; и пÑедполагаеÑ, ÑÑо Object
и TypeError
имеÑÑ Ñвои пеÑвонаÑалÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¸ ÑÑо callback.call
вÑÑиÑлÑеÑÑÑ Ð² оÑигиналÑное знаÑение Function.prototype.call()
.
// Шаги алгоÑиÑма ECMA-262, 5-е издание, 15.4.4.17
// СÑÑлка (en): http://es5.github.io/#x15.4.4.17
// СÑÑлка (ru): http://es5.javascript.ru/x15.4.html#x15.4.4.17
if (!Array.prototype.some) {
Array.prototype.some = function (fun /*, thisArg*/) {
"use strict";
if (this == null) {
throw new TypeError("Array.prototype.some called on null or undefined");
}
if (typeof fun !== "function") {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
for (var i = 0; i < len; i++) {
if (i in t && fun.call(thisArg, t[i], i, t)) {
return true;
}
}
return false;
};
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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