Baseline Widely available
СводкаÐеÑод every()
пÑовеÑÑеÑ, ÑдовлеÑвоÑÑÑÑ Ð»Ð¸ вÑе ÑлеменÑÑ Ð¼Ð°ÑÑива ÑÑловиÑ, Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð² пеÑедаваемой ÑÑнкÑии.
ÐÑимеÑание: ÐеÑод возвÑаÑÐ°ÐµÑ true
пÑи лÑбом ÑÑловии Ð´Ð»Ñ Ð¿ÑÑÑого маÑÑива.
arr.every(callback(currentValue[, index[, array]])[, thisArg])ÐаÑамеÑÑÑ
callback
ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки каждого ÑлеменÑа, пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑи аÑгÑменÑа:
currentValue
ТекÑÑий обÑабаÑÑваемÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива.
index
ÐеобÑзаÑелÑнÑй
ÐÐ½Ð´ÐµÐºÑ ÑекÑÑего обÑабаÑÑваемого ÑлеменÑа маÑÑива.
array
ÐеобÑзаÑелÑнÑй
ÐаÑÑив, по коÑоÑÐ¾Ð¼Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ Ð¿ÑÐ¾Ñ Ð¾Ð´.
thisArg
ÐеобÑзаÑелÑнÑй
ÐеобÑзаÑелÑнÑй паÑамеÑÑ. ÐнаÑение, иÑполÑзÑемое в каÑеÑÑве this
пÑи вÑполнении ÑÑнкÑии callback
.
true
еÑли ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки возвÑаÑÐ°ÐµÑ truthy знаÑение Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива. ÐнаÑе, false
.
ÐеÑод every()
вÑзÑÐ²Ð°ÐµÑ Ð¿ÐµÑеданнÑÑ ÑÑнкÑÐ¸Ñ callback
один Ñаз Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа, пÑиÑÑÑÑÑвÑÑÑего в маÑÑиве до ÑеÑ
поÑ, пока не найдÑÑ Ñакой, Ð´Ð»Ñ ÐºÐ¾ÑоÑого callback
веÑнÑÑ Ð»Ð¾Ð¶Ð½Ð¾Ðµ знаÑение (знаÑение, ÑÑановÑÑееÑÑ ÑавнÑм false
пÑи пÑиведении его к ÑÐ¸Ð¿Ñ Boolean
). ÐÑли Ñакой ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ð°Ð¹Ð´ÐµÐ½, меÑод every()
немедленно веÑнÑÑ false
. РпÑоÑивном ÑлÑÑае, еÑли callback
веÑнÑÑ true
Ð´Ð»Ñ Ð²ÑеÑ
ÑлеменÑов маÑÑива, меÑод every()
веÑнÑÑ true
. ФÑнкÑÐ¸Ñ callback
вÑзÑваеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов маÑÑива, имеÑÑиÑ
пÑиÑвоеннÑе знаÑениÑ; она не вÑзÑваеÑÑÑ Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов, коÑоÑÑе бÑли ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¸Ð»Ð¸ коÑоÑÑм знаÑÐµÐ½Ð¸Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не пÑиÑваивалиÑÑ.
ФÑнкÑÐ¸Ñ callback
вÑзÑваеÑÑÑ Ñ ÑÑÐµÐ¼Ñ Ð°ÑгÑменÑами: знаÑением ÑлеменÑа, индекÑом ÑлеменÑа и маÑÑивом, по коÑоÑÐ¾Ð¼Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ Ð¿ÑоÑ
од.
ÐÑли в меÑод every()
бÑл пеÑедан паÑамеÑÑ thisArg
, пÑи вÑзове callback
он бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве знаÑÐµÐ½Ð¸Ñ this
. РпÑоÑивном ÑлÑÑае в каÑеÑÑве знаÑÐµÐ½Ð¸Ñ this
бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð·Ð½Ð°Ñение undefined
. РконеÑном иÑоге, знаÑение this
, наблÑдаемое из ÑÑнкÑии callback
, опÑеделÑеÑÑÑ ÑоглаÑно обÑÑнÑм пÑавилам опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ this
, видимого из ÑÑнкÑии.
ÐеÑод every()
не изменÑÐµÑ Ð¼Ð°ÑÑив, Ð´Ð»Ñ ÐºÐ¾ÑоÑого он бÑл вÑзван.
Ðиапазон ÑлеменÑов, обÑабаÑÑваемÑÑ
меÑодом every()
, ÑÑÑанавливаеÑÑÑ Ð´Ð¾ пеÑвого вÑзова ÑÑнкÑии callback
. ÐлеменÑÑ, добавленнÑе в маÑÑив поÑле наÑала вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÑода every()
, не бÑдÑÑ Ð¿Ð¾ÑеÑÐµÐ½Ñ ÑÑнкÑией callback
. ÐÑли ÑÑÑеÑÑвÑÑÑие ÑлеменÑÑ Ð¼Ð°ÑÑива изменÑÑÑÑ, знаÑениÑ, пеÑеданнÑе в ÑÑнкÑÐ¸Ñ callback
, бÑдÑÑ Ð·Ð½Ð°ÑениÑми на ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, когда меÑод every()
поÑеÑÐ¸Ñ Ð¸Ñ
; ÑдалÑннÑе ÑлеменÑÑ Ð¿Ð¾ÑеÑÐµÐ½Ñ Ð½Ðµ бÑдÑÑ.
ÐеÑод every()
дейÑÑвÑÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ кванÑоÑÑ Ð²ÑеобÑноÑÑи в маÑемаÑике. Ð ÑаÑÑноÑÑи, он веÑнÑÑ true
Ð´Ð»Ñ Ð¿ÑÑÑого маÑÑива. ÐÑо Ñак назÑÐ²Ð°ÐµÐ¼Ð°Ñ Ð±ÐµÑÑодеÑжаÑелÑÐ½Ð°Ñ Ð¸ÑÑина (vacuously true) â вÑе ÑлеменÑÑ Ð¿ÑÑÑого множеÑÑва (англ.) ÑдовлеÑвоÑÑÑÑ Ð»ÑÐ±Ð¾Ð¼Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑÑловиÑ.
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿ÑовеÑÑеÑ, ÑвлÑÑÑÑÑ Ð»Ð¸ вÑе ÑлеменÑÑ Ð¼Ð°ÑÑива ÑиÑлами, болÑÑими 10.
function isBigEnough(element, index, array) {
return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough); // false
[12, 54, 18, 130, 44].every(isBigEnough); // true
ÐÑимеÑ: иÑполÑзование ÑÑÑелоÑнÑÑ
ÑÑнкÑий
СÑÑелоÑнÑе ÑÑнкÑии пÑедоÑÑавлÑÑÑ Ð±Ð¾Ð»ÐµÐµ кÑаÑкий ÑинÑакÑÐ¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ Ð¿ÑовеÑок.
[12, 5, 8, 130, 44].every((elem) => elem >= 10); // false
[12, 54, 18, 130, 44].every((elem) => elem >= 10); // true
ÐолиÑил
ÐеÑод every()
бÑл добавлен к ÑÑандаÑÑÑ ECMA-262 в 5-м издании; поÑÑÐ¾Ð¼Ñ Ð¾Ð½ Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ пÑиÑÑÑÑÑвоваÑÑ Ð² дÑÑгиÑ
ÑеализаÑиÑÑ
ÑÑандаÑÑа. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑабоÑаÑÑ Ñ Ð½Ð¸Ð¼, добавив ÑледÑÑÑий код в наÑало ваÑиÑ
ÑкÑипÑов, он позволÑÐµÑ Ð¸ÑполÑзоваÑÑ every()
в ÑеализаÑиÑÑ
, коÑоÑÑе не поддеÑживаÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑод. ÐÑÐ¾Ñ Ð°Ð»Ð³Ð¾ÑиÑм ÑвлÑеÑÑÑ ÑоÑно Ñем, ÑÑо опиÑан в ECMA-262 5-го изданиÑ; и пÑÐµÐ´Ð¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ ÑÑо Object
и TypeError
имеÑÑ Ñвои пеÑвонаÑалÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¸ ÑÑо callback.call
вÑÑиÑлÑеÑÑÑ Ð² оÑигиналÑное знаÑение Function.prototype.call()
.
if (!Array.prototype.every) {
Array.prototype.every = function (callbackfn, thisArg) {
"use strict";
var T, k;
if (this == null) {
throw new TypeError("this is null or not defined");
}
// 1. Ðоложим O ÑавнÑм ÑезÑлÑÑаÑÑ Ð²Ñзова ToObject над знаÑением
// this, пеÑеданнÑм в каÑеÑÑве аÑгÑменÑа.
var O = Object(this);
// 2. Ðоложим lenValue ÑавнÑм ÑезÑлÑÑаÑÑ Ð²Ñзова внÑÑÑеннего меÑода Get
// обÑекÑа O Ñ Ð°ÑгÑменÑом "length".
// 3. Ðоложим len ÑавнÑм ToUint32(lenValue).
var len = O.length >>> 0;
// 4. ÐÑли IsCallable(callbackfn) Ñавен false, вÑкинем иÑклÑÑение TypeError.
if (typeof callbackfn !== "function") {
throw new TypeError();
}
// 5. ÐÑли thisArg пÑиÑÑÑÑÑвÑеÑ, положим T ÑавнÑм thisArg; инаÑе положим T ÑавнÑм undefined.
if (arguments.length > 1) {
T = thisArg;
}
// 6. Ðоложим k ÑавнÑм 0.
k = 0;
// 7. Ðока k < len, бÑдем повÑоÑÑÑÑ
while (k < len) {
var kValue;
// a. Ðоложим Pk ÑавнÑм ToString(k).
// ÐÑо неÑвное пÑеобÑазование Ð´Ð»Ñ Ð»ÐµÐ²Ð¾ÑÑоÑоннего опеÑанда в опеÑаÑоÑе in
// b. Ðоложим kPresent ÑавнÑм ÑезÑлÑÑаÑÑ Ð²Ñзова внÑÑÑеннего меÑода
// HasProperty обÑекÑа O Ñ Ð°ÑгÑменÑом Pk.
// ÐÑÐ¾Ñ Ñаг Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð±ÑединÑн Ñ Ñагом c
// c. ÐÑли kPresent Ñавен true, Ñо
if (k in O) {
// i. Ðоложим kValue ÑавнÑм ÑезÑлÑÑаÑÑ Ð²Ñзова внÑÑÑеннего меÑода Get
// обÑекÑа O Ñ Ð°ÑгÑменÑом Pk.
kValue = O[k];
// ii. Ðоложим testResult ÑавнÑм ÑезÑлÑÑаÑÑ Ð²Ñзова внÑÑÑеннего меÑода Call
// ÑÑнкÑии callbackfn Ñо знаÑением T в каÑеÑÑве this и ÑпиÑком аÑгÑменÑов,
// ÑодеÑжаÑим kValue, k и O.
var testResult = callbackfn.call(T, kValue, k, O);
// iii. ÐÑли ToBoolean(testResult) Ñавен false, веÑнÑм false.
if (!testResult) {
return false;
}
}
k++;
}
return true;
};
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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