ÐÐ°Ð½Ð½Ð°Ñ Ð³Ð»Ð°Ð²Ð° Ð·Ð½Ð°ÐºÐ¾Ð¼Ð¸Ñ ÑиÑаÑÐµÐ»Ñ Ñ Ð¼Ð°ÑÑивами - коллекÑиÑми ÑлеменÑов, ÑпоÑÑдоÑеннÑÑ
по индекÑÑ. Ðлава вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð¾Ð¿Ð¸Ñание маÑÑивов и маÑÑивоподобнÑÑ
ÑÑÑÑкÑÑÑ, ÑакиÑ
как Array
и TypedArray
.
Array
обÑекÑ
ÐаÑÑив пÑедÑÑавлÑеÑÑÑ Ñобой ÑпоÑÑдоÑеннÑй Ð½Ð°Ð±Ð¾Ñ Ð·Ð½Ð°Ñений, к коÑоÑÐ¾Ð¼Ñ Ð²Ñ ÑÑÑлаеÑеÑÑ Ð¿Ð¾ имени и индекÑÑ. ÐопÑÑÑим, Ñ Ð²Ð°Ñ ÐµÑÑÑ Ð¼Ð°ÑÑив Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ emp,
ÑодеÑжаÑий имена ÑоÑÑÑдников и ÑпоÑÑдоÑеннÑй по номеÑÑ ÑоÑÑÑдников. СледоваÑелÑно, emp[1]
бÑÐ´ÐµÑ Ð¿ÑедÑÑавлÑÑÑ Ñобой Ð¸Ð¼Ñ ÑоÑÑÑдника Ð½Ð¾Ð¼ÐµÑ Ð¾Ð´Ð¸Ð½, emp[2]
â Ð¸Ð¼Ñ ÑоÑÑÑдника Ð½Ð¾Ð¼ÐµÑ Ð´Ð²Ð°, и Ñ.д.
ЯзÑк JavaScript не ÑодеÑÐ¶Ð¸Ñ Ñвного Ñипа даннÑÑ
"маÑÑив". Тем не менее, возможно иÑполÑзоваÑÑ Ð¿ÑедопÑеделÑннÑй обÑÐµÐºÑ Array
и его меÑÐ¾Ð´Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¼Ð°ÑÑивами в ÑоздаваемÑÑ
пÑиложениÑÑ
. ÐбÑÐµÐºÑ Array
ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¼Ð°ÑÑивами ÑамÑми ÑазлиÑнÑми ÑпоÑобами, напÑимеÑ, еÑÑÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ Ð¾Ð±ÑединениÑ, пеÑевоÑаÑÐ¸Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑоÑÑиÑовки. ÐбÑÐµÐºÑ ÑодеÑÐ¶Ð¸Ñ ÑвойÑÑво Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°ÑÑива, а Ñакже ÑвойÑÑва Ð´Ð»Ñ ÑабоÑÑ Ñ ÑегÑлÑÑнÑми вÑÑажениÑми.
СледÑÑÑие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑоздаÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе маÑÑивÑ:
var arr = new Array(element0, element1, ..., elementN);
var arr = Array(element0, element1, ..., elementN);
var arr = [element0, element1, ..., elementN];
element0, element1, ..., elementN
- ÑпиÑок знаÑений ÑлеменÑов маÑÑива. ÐÑли знаÑÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ñ, Ñо ÑÑи знаÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑвлÑÑÑÑÑ ÑлеменÑами маÑÑива поÑле его иниÑиализаÑии. СвойÑÑво length
Ñ Ð¼Ð°ÑÑива бÑÐ´ÐµÑ Ñавно колиÑеÑÑÐ²Ñ Ð°ÑгÑменÑов.
СинÑакÑÐ¸Ñ Ñ Ð¸ÑполÑзованием квадÑаÑнÑÑ Ñкобок назÑваеÑÑÑ "лиÑеÑал маÑÑива" (array literal) или "иниÑиализаÑÐ¾Ñ Ð¼Ð°ÑÑива". Ð¢Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ ÐºÐ¾ÑоÑе, Ñем дÑÑгие ÑпоÑÐ¾Ð±Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼Ð°ÑÑива, и, как пÑавило, более пÑедпоÑÑиÑелÑна. См. Array literals.
ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼Ð°ÑÑива без ÑлеменÑов, но ненÑлевой длинÑ, возможно иÑполÑзоваÑÑ Ð¾Ð´Ð½Ð¾ из ÑледÑÑÑÐ¸Ñ Ð²ÑÑажений:
var arr = new Array(arrayLength);
var arr = Array(arrayLength);
// ТоÑно Ñакой же ÑÑÑекÑ
var arr = [];
arr.length = arrayLength;
ÐÑимеÑание: РпÑимеÑе вÑÑе arrayLength
должно имеÑÑ ÑиÑловой Ñип Number
. РпÑоÑивном ÑлÑÑае бÑÐ´ÐµÑ Ñоздан маÑÑив Ñ ÐµÐ´Ð¸Ð½ÑÑвеннÑм ÑлеменÑом (Ñказанное знаÑение). ÐÑÐ·Ð²Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ arr.length
веÑнÑÑ Ð·Ð½Ð°Ñение arrayLength
, но на Ñамом деле маÑÑив бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¿ÑÑÑÑе ÑлеменÑÑ (undefined). ÐÑполÑзование Ñикла for...in
Ð´Ð»Ñ Ð¾Ð±ÑабоÑки знаÑений маÑÑива не веÑнÑÑ Ð½Ð¸ одного ÑлеменÑа.
ÐаÑÑÐ¸Ð²Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿ÑиÑÐ²Ð¾ÐµÐ½Ñ ÑвойÑÑÐ²Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ или Ñже ÑÑÑеÑÑвÑÑÑего обÑекÑа, как показано ниже:
var obj = {};
// ...
obj.prop = [element0, element1, ..., elementN];
// OR
var obj = {prop: [element0, element1, ...., elementN]}
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе иниÑиализиÑоваÑÑ Ð¼Ð°ÑÑив одним ÑлеменÑом и ÑÑим ÑлеменÑом ÑвлÑеÑÑÑ ÑиÑло Ñипа Number, Ñо Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ ÐºÐ²Ð°Ð´ÑаÑнÑе Ñкобки. ÐÑли Ð²Ñ ÑоздаÑÑе маÑÑив Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Array (конÑÑÑÑкÑоÑа или ÑÑнкÑии), а единÑÑвеннÑм ÑлеменÑом ÑÑого маÑÑива бÑÐ´ÐµÑ ÑиÑло Ñипа Number, Ñо ÑиÑло ÑÑо инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº длина маÑÑива (arrayLength), а не как ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñипа Number.
var arr = [42]; // СоздаÑÑ Ð¼Ð°ÑÑив Ñ Ð¾Ð´Ð½Ð¸Ð¼ ÑлеменÑом
var arr = Array(42); // СоздаÑÑ Ð¼Ð°ÑÑив без ÑлеменÑов,
// но ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°ÑÑива arr.length в 42
// ÐÑо ÑквиваленÑно ÑледÑÑÑемÑ
var arr = [];
arr.length = 42;
ÐÑзов Array(N) вÑбÑоÑÐ¸Ñ RangeError, еÑли N не Ñелое знаÑение, ÑÑÑ Ð´ÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ Ð½Ðµ нолÑ. СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¸Ð»Ð»ÑÑÑÑиÑÑÐµÑ ÑÑо.
var arr = Array(9.3); // RangeError: Invalid array length
ÐÑли Ð²Ð°Ñ ÐºÐ¾Ð´ нÑждаеÑÑÑ Ð² Ñоздании маÑÑива Ñ Ð¾Ð´Ð½Ð¸Ð¼ ÑлеменÑом пÑоизволÑного Ñипа даннÑÑ , Ñо безопаÑней иÑполÑзоваÑÑ Ð»Ð¸ÑеÑалÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ. Ðли ÑоздайÑе пÑÑÑой маÑÑив, а заÑем добавÑÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñй ÑлеменÑ.
Ðаполнение маÑÑиваÐÑ Ð¼Ð¾Ð¶ÐµÑе заполниÑÑ Ð¼Ð°ÑÑив пÑÑÑм пÑиÑÐ²Ð¾ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений его ÑлеменÑам. ÐÐ»Ñ Ð¿ÑимеÑа:
var emp = [];
emp[0] = "Casey Jones";
emp[1] = "Phil Lesh";
emp[2] = "August West";
ÐÑимеÑание: ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе неÑелое знаÑение в опеÑаÑоÑе [] обÑаÑÐµÐ½Ð¸Ñ Ðº ÑлеменÑÑ Ð¼Ð°ÑÑива, Ñо бÑÐ´ÐµÑ Ñоздано ÑооÑвеÑÑÑвÑÑÑее ÑвойÑÑво в обÑекÑе, пÑедÑÑавлÑÑÑем маÑÑив, вмеÑÑо ÑлеменÑа маÑÑива (Ñак как маÑÑÐ¸Ð²Ñ Ð² JavaScript ÑвлÑÑÑÑÑ Ð¾Ð±ÑекÑами).
var arr = [];
arr[3.4] = "Oranges";
console.log(arr.length); // 0
console.log(arr.hasOwnProperty(3.4)); // true
ÐÑ Ð¼Ð¾Ð¶ÐµÑе заполниÑÑ Ð¼Ð°ÑÑив во вÑÐµÐ¼Ñ ÑозданиÑ:
var myArray = new Array("Hello", myVar, 3.14159);
var myArray = ["Mango", "Apple", "Orange"];
РабоÑа Ñ ÑлеменÑами маÑÑива
ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑлаÑÑÑÑ Ð½Ð° ÑлеменÑÑ Ð¼Ð°ÑÑива пÑÑÑм иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ñ Ð¿Ð¾ÑÑдковÑÑ Ð½Ð¾Ð¼ÐµÑов. ÐÐ»Ñ Ð¿ÑимеÑа, пÑедположим, ÑÑо Ð²Ñ Ð¾Ð¿Ñеделили ÑледÑÑÑий маÑÑив:
var myArray = ["Wind", "Rain", "Fire"];
ÐаÑем Ð²Ñ ÑоÑлалиÑÑ Ð½Ð° пеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива как myArray[0] и вÑоÑой ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива как myArray[1]. ÐндекÑаÑÐ¸Ñ ÑлеменÑов маÑÑива наÑинаеÑÑÑ Ñ Ð½ÑлÑ.
ÐÑимеÑание: ÐпеÑаÑÐ¾Ñ Ð¾Ð±ÑаÑÐµÐ½Ð¸Ñ Ðº ÑлеменÑÑ Ð¼Ð°ÑÑива (квадÑаÑнÑе Ñкобки []) Ñакже иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к ÑвойÑÑвам маÑÑива (маÑÑÐ¸Ð²Ñ Ñакже ÑвлÑÑÑÑÑ Ð¾Ð±ÑекÑами в JavaScript). ÐапÑимеÑ:
var arr = ["one", "two", "three"];
arr[2]; // three
arr["length"]; // ÐеÑнÑÑ ÑиÑло 3, Ñак как ÑÑо ÑвойÑÑво - длина маÑÑива
Ðонимание length
Ðа ÑÑовне ÑеализаÑии, маÑÑÐ¸Ð²Ñ Ð² JavaScript Ñ
ÑанÑÑ Ñвои ÑлеменÑÑ ÐºÐ°Ðº ÑÑандаÑÑнÑе ÑвойÑÑва обÑекÑа, иÑполÑзÑÑ Ð¸Ð½Ð´ÐµÐºÑ Ð² каÑеÑÑве имени ÑвойÑÑва. СпеÑиалÑное ÑвойÑÑво length
вÑегда возвÑаÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ñледнего ÑлеменÑа плÑÑ Ð¾Ð´Ð¸Ð½ (в пÑимеÑе ниже, ÑÐ»ÐµÐ¼ÐµÐ½Ñ 'Dusty' ÑазмеÑаеÑÑÑ Ð¿Ð¾Ð´ индекÑом 30, по ÑÑÐ¾Ð¼Ñ cats.length возвÑаÑÐ°ÐµÑ 30 + 1). ÐÑобо ÑледÑÐµÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½Ð¸ÑÑ, ÑÑо в JavaScript маÑÑÐ¸Ð²Ñ Ð¸Ð½Ð´ÐµÐºÑиÑÑÑÑÑÑ Ñ Ð½ÑлÑ: оÑÑÑÑÑ Ð²ÐµÐ´ÑÑÑÑ Ñ 0, а не Ñ 1. Ðз ÑÑого и ÑледÑеÑ, ÑÑо ÑвойÑÑво length
вÑегда на единиÑÑ Ð±Ð¾Ð»ÑÑе, Ñем наиболÑÑий Ð¸Ð½Ð´ÐµÐºÑ Ñ
ÑанÑÑийÑÑ Ð² маÑÑиве:
var cats = [];
cats[30] = ["Dusty"];
console.log(cats.length); // 31
Также, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаваÑÑ Ð·Ð½Ð°Ñение Ð´Ð»Ñ length
. УÑÑановка знаÑÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑÑего, Ñем колиÑеÑÑво Ñ
ÑанÑÑиÑ
ÑÑ Ð² маÑÑиве ÑлеменÑов, обÑÐµÐ·Ð°ÐµÑ Ð¼Ð°ÑÑив Ñ ÐºÐ¾Ð½Ñа; ÑÑÑановка length
ÑавнÑм 0 оÑиÑÐ°ÐµÑ Ð¼Ð°ÑÑив полноÑÑÑÑ:
var cats = ["Dusty", "Misty", "Twiggy"];
console.log(cats.length); // 3
cats.length = 2;
console.log(cats); // вÑÐ²Ð¾Ð´Ð¸Ñ Ð² конÑÐ¾Ð»Ñ "Dusty,Misty" - ÑÐ»ÐµÐ¼ÐµÐ½Ñ "Twiggy" бÑл ÑдалÑн
cats.length = 0;
console.log(cats); // вÑÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑÑÑÑÑ ÑÑÑокÑ; маÑÑив cats пÑÑÑ
cats.length = 3;
console.log(cats); // вÑÐ²Ð¾Ð´Ð¸Ñ [undefined, undefined, undefined]
ÐеÑÐµÐ±Ð¾Ñ ÑодеÑжимого маÑÑивов
ÐÑÐµÐ½Ñ ÑаÑпÑоÑÑÑанÑÐ½Ð½Ð°Ñ Ð·Ð°Ð´Ð°Ñа - ÑÑо пеÑÐµÐ±Ð¾Ñ Ð²ÑÐµÑ ÑлеменÑов маÑÑива и обÑабоÑка каждого ÑлеменÑа некоÑоÑой опеÑаÑией. ÐÐ¾Ñ Ð½Ð°Ð¸Ð¿ÑоÑÑейÑий ÑпоÑоб ÑделаÑÑ ÑÑо:
var colors = ["red", "green", "blue"];
for (var i = 0; i < colors.length; i++) {
console.log(colors[i]);
}
ÐÑли вам заÑанее извеÑÑно, ÑÑо ни один ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива не бÑÐ´ÐµÑ ÑаÑÑенÑн как false
пÑи пÑиведении к boolean â напÑимеÑ, каждÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива ÑвлÑеÑÑÑ DOM Ñзлом, Ñогда Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе блеÑнÑÑÑ ÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивнÑм обоÑоÑом:
var divs = document.getElementsByTagName("div");
for (var i = 0, div; (div = divs[i]); i++) {
/* ÐбÑабоÑаÑÑ div некоÑоÑой опеÑаÑией */
}
ÐодÑ
од в пÑимеÑе вÑÑе, позволÑÐµÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¿ÑовеÑки Ð´Ð»Ð¸Ð½Ð½Ñ Ð¼Ð°ÑÑива пÑи каждой иÑеÑаÑии, и лиÑÑ ÑбеждаеÑÑÑ, ÑÑо пеÑеменной div
пÑиÑвоен ÑÑÑеÑÑвÑÑÑий ÑекÑÑий ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива пÑи каждом пÑоÑ
ождении Ñикла.
ÐеÑод forEach()
пÑедоÑÑавлÑÐµÑ Ð´ÑÑгой ÑпоÑоб пеÑебоÑа ÑлеменÑов:
var colors = ["red", "green", "blue"];
colors.forEach(function (color) {
console.log(color);
});
Ðак ваÑианÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑокÑаÑиÑÑ ÐºÐ¾Ð´ пÑогÑаммÑ, иÑполÑзÑÑ ÑÑÑелоÑнÑе ÑÑнкÑии из ES6:
var colors = ["red", "green", "blue"];
colors.forEach((color) => console.log(color));
// red
// green
// blue
ФÑнкÑиÑ, пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² меÑод forEach
, бÑÐ´ÐµÑ Ð²Ñполнена по Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÐ°Ð·Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива, пÑи ÑÑом Ñам ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива бÑÐ´ÐµÑ Ð¿ÐµÑедан как аÑгÑÐ¼ÐµÐ½Ñ Ð² ÑÑÑ ÑÑнкÑиÑ. ÐлеменÑÑ, знаÑÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑÑм не пÑиÑвоенÑ, не обÑабаÑÑваÑÑÑÑ forEach
Ñиклом.
ÐамеÑÑÑе, ÑÑо ÑлеменÑÑ, пÑопÑÑеннÑе пÑи Ñоздании маÑÑива не обÑабаÑÑваÑÑÑÑ Ð¼ÐµÑодом forEach
, однако, undefined
ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¾Ð±ÑабаÑÑваеÑÑÑ Ð² Ñом ÑлÑÑае, когда он пÑиÑвоен ÑÑейке маÑÑива вÑÑÑнÑÑ:
var array = ["first", "second", , "fourth"];
array.forEach(function (element) {
console.log(element);
});
// first
// second
// fourth
if (array[2] === undefined) {
console.log("array[2] is undefined"); // true
}
array = ["first", "second", undefined, "fourth"];
array.forEach(function (element) {
console.log(element);
});
// first
// second
// undefined
// fourth
Так как в JavaScript ÑлеменÑÑ Ð¼Ð°ÑÑива Ñ
ÑанÑÑÑÑ ÐºÐ°Ðº обÑÑнÑе ÑвойÑÑва обÑекÑа, иÑполÑзование for...in
Ñиклов Ð´Ð»Ñ Ð¿ÐµÑебоÑа ÑлеменÑов маÑÑива нежелаÑелÑно, поÑÐ¾Ð¼Ñ ÑÑо бÑдÑÑ Ð¾Ð±ÑабоÑÐ°Ð½Ñ Ð½Ðµ ÑолÑко ÑлеменÑÑ Ð¼Ð°ÑÑива, но и вÑе пеÑеÑиÑлÑемÑе ÑвойÑÑва маÑÑива.
ÐбÑÐµÐºÑ Array
Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие меÑодÑ:
concat()
обÑединÑÐµÑ Ð´Ð²Ð° маÑÑива и возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив.
var myArray = new Array("1", "2", "3"); myArray = myArray.concat("a", "b", "c"); // myArray = ["1", "2", "3", "a", "b", "c"]
join(deliminator = ',')
обÑединÑÐµÑ ÑлеменÑÑ Ð¼Ð°ÑÑива в ÑекÑÑовÑÑ ÑÑÑокÑ.
var myArray = new Array("Wind", "Rain", "Fire"); var list = myArray.join(" - "); // list = "Wind - Rain - Fire"
push()
добавлÑÐµÑ Ð¾Ð´Ð¸Ð½ или неÑколÑко ÑлеменÑов в ÐºÐ¾Ð½ÐµÑ Ð¼Ð°ÑÑива и возвÑаÑÐ°ÐµÑ ÑезÑлÑÑиÑÑÑÑÑÑ Ð´Ð»Ð¸Ð½Ñ.
var myArray = new Array("1", "2"); myArray.push("3"); // myArray =["1", "2", "3"]
pop()
ÑдалÑÐµÑ Ð¸Ð· маÑÑива поÑледний ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¸ возвÑаÑÐ°ÐµÑ ÐµÐ³Ð¾.
var myArray = new Array("1", "2", "3"); var last = myArray.pop(); // myArray =["1", "2"], last = "3"
shift()
ÑдалÑÐµÑ Ð¸Ð· маÑÑива пеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¸ возвÑаÑÐ°ÐµÑ ÐµÐ³Ð¾.
var myArray = new Array ("1", "2", "3"); var first = myArray.shift(); // myArray = ["2", "3"], first = "1"
unshift()
добавлÑÐµÑ Ð¾Ð´Ð¸Ð½ или неÑколÑко ÑлеменÑов в наÑало маÑÑива и возвÑаÑÐ°ÐµÑ ÐµÐ³Ð¾ новÑÑ Ð´Ð»Ð¸Ð½Ñ.
var myArray = new Array("1", "2", "3");
myArray.unshift("4", "5");
// myArray becomes ["4", "5", "1", "2", "3"]
slice(start_index, upto_index)
возвÑаÑÐ°ÐµÑ ÑекÑÐ¸Ñ Ð¼Ð°ÑÑива как новÑй маÑÑив.
var myArray = new Array("a", "b", "c", "d", "e");
myArray = myArray.slice(1, 4); // наÑÐ¸Ð½Ð°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа 1 извлекаÑÑÑÑ ÑлеменÑÑ Ð²Ð¿Ð»Ð¾ÑÑ Ð´Ð¾ индекÑа 3
// myArray = [ "b", "c", "d"]
splice(index, count_to_remove, addElement1, addElement2, ...)
ÑдалÑÐµÑ ÑаÑÑÑ ÑлеменÑов из маÑÑива и (опÑионалÑно) заменÑÐµÑ Ð¸Ñ
. ÐозвÑаÑÐ°ÐµÑ ÑдалÑннÑе ÑлеменÑÑ.
var myArray = new Array("1", "2", "3", "4", "5");
myArray.splice(1, 3, "a", "b", "c", "d");
// myArray = ["1", "a", "b", "c", "d", "5"]
// ÐÑÐ¾Ñ ÐºÐ¾Ð´, наÑÐ¸Ð½Ð°Ñ Ñ ÑÑейки под индекÑом 1 (в коÑоÑой наÑ
одилоÑÑ Ð·Ð½Ð°Ñение "2"),
// ÑдалÑÐµÑ 3 ÑлеменÑа, и вÑÑавлÑÐµÑ Ð½Ð° иÑ
меÑÑо
// ÑлеменÑÑ, пеÑеданнÑе в каÑеÑÑве поÑледÑÑÑиÑ
паÑамеÑÑов.
reverse()
пеÑеÑÑавлÑÐµÑ ÑлеменÑÑ Ð¼Ð°ÑÑива в обÑаÑном поÑÑдке: пеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑÑановиÑÑÑ Ð¿Ð¾Ñледним, а поÑледний - пеÑвÑм.
var myArray = new Array("1", "2", "3");
myArray.reverse();
// ÑлеменÑÑ Ð¿ÐµÑеÑÑÐ°Ð²Ð»ÐµÐ½Ñ myArray = [ "3", "2", "1" ]
sort()
ÑоÑÑиÑÑÐµÑ ÑлеменÑÑ Ð¼Ð°ÑÑива.
var myArray = new Array("Wind", "Rain", "Fire");
myArray.sort();
// маÑÑив оÑÑоÑÑиÑован myArray = [ "Fire", "Rain", "Wind" ]
ÐеÑод sort()
Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð² каÑеÑÑве аÑгÑменÑа callback
-ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð¾Ð¿ÑеделÑÐµÑ ÐºÐ°ÐºÐ¸Ð¼ обÑазом ÑÑавниваÑÑ ÑлеменÑÑ Ð¼Ð°ÑÑива пÑи ÑоÑÑиÑовке. ФÑнкÑÐ¸Ñ ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð´Ð²Ð° знаÑениÑ, и возвÑаÑÐ°ÐµÑ Ð¾Ð´Ð½Ð¾ из ÑÑÑÑ
знаÑений (ÑпиÑок ваÑианÑов знаÑений ÑмоÑÑиÑе поÑле пÑимеÑа):
ÐÑимеÑ. СледÑÑÑий код ÑоÑÑиÑÑÐµÑ Ð¼Ð°ÑÑив по поÑÐ»ÐµÐ´Ð½ÐµÐ¼Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð² ÑÑÑоке:
var sortFn = function (a, b) {
if (a[a.length - 1] < b[b.length - 1]) return -1;
if (a[a.length - 1] > b[b.length - 1]) return 1;
if (a[a.length - 1] == b[b.length - 1]) return 0;
};
myArray.sort(sortFn);
// маÑÑив оÑÑоÑÑиÑован myArray = ["Wind","Fire","Rain"]
a
менÑÑе Ñем b
в вÑбÑанной ÑиÑÑеме ÑÑавнениÑ, возвÑаÑаем -1 (или лÑбое оÑÑиÑаÑелÑное ÑиÑло)a
болÑÑе Ñем b
в вÑбÑанной ÑиÑÑеме ÑÑавнениÑ, возвÑаÑаем 1 (или лÑбое положиÑелÑное ÑиÑло)a
и b
ÑÑиÑаÑÑÑÑ ÑавнÑми, возвÑаÑаем 0.indexOf(searchElement[, fromIndex])
иÑÐµÑ Ð² маÑÑиве ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñо знаÑением searchElement
и возвÑаÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¿ÐµÑвого ÑовпадениÑ.
var a = ["a", "b", "a", "b", "a"];
console.log(a.indexOf("b")); // вÑÐ²Ð¾Ð´Ð¸Ñ 1
// ÐопÑобÑем еÑÑ Ñаз, наÑÐ¸Ð½Ð°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа поÑледнего ÑовпадениÑ
console.log(a.indexOf("b", 2)); // вÑÐ²Ð¾Ð´Ð¸Ñ 3
console.log(a.indexOf("z")); // вÑÐ²Ð¾Ð´Ð¸Ñ -1, поÑÐ¾Ð¼Ñ ÑÑо 'z' не найдено
lastIndexOf(searchElement[, fromIndex])
Ñоже Ñамое, ÑÑо и indexOf
, но поиÑк ведÑÑÑÑ Ð² обÑаÑном поÑÑдке, Ñ ÐºÐ¾Ð½Ñа маÑÑива.
var a = ["a", "b", "c", "d", "a", "b"];
console.log(a.lastIndexOf("b")); // вÑÐ²Ð¾Ð´Ð¸Ñ 5
// ÐопÑобÑем еÑÑ Ñаз, наÑÐ¸Ð½Ð°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа, пÑедÑеÑÑвÑÑÑего индекÑÑ Ð¿Ð¾Ñледнего ÑовпадениÑ
console.log(a.lastIndexOf("b", 4)); // вÑÐ²Ð¾Ð´Ð¸Ñ 1
console.log(a.lastIndexOf("z")); // вÑÐ²Ð¾Ð´Ð¸Ñ -1
forEach(callback[, thisObject])
вÑполнÑÐµÑ callback
-ÑÑнкÑÐ¸Ñ Ð¿Ð¾ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑлеменÑÑ Ð¼Ð°ÑÑива.
var a = ["a", "b", "c"];
a.forEach(function (element) {
console.log(element);
});
// вÑÐ²Ð¾Ð´Ð¸Ñ Ð² конÑÐ¾Ð»Ñ ÐºÐ°Ð¶Ð´Ñй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива по поÑÑдкÑ
map(callback[, thisObject])
возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑодеÑжаÑий ÑезÑлÑÑаÑÑ Ð²Ñзова callback
-ÑÑнкÑии Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа иÑÑ
одного маÑÑива.
var a1 = ["a", "b", "c"];
var a2 = a1.map(function (item) {
return item.toUpperCase();
});
console.log(a2); // вÑÐ²Ð¾Ð´Ð¸Ñ A,B,C
filter(callback[, thisObject])
возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑодеÑжаÑий ÑолÑко Ñе ÑлеменÑÑ Ð¸ÑÑ
одного маÑÑива, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
вÑзов callback
-ÑÑнкÑии веÑнÑл true.
var a1 = ["a", 10, "b", 20, "c", 30];
var a2 = a1.filter(function (item) {
return typeof item == "number";
});
console.log(a2); // вÑÐ²Ð¾Ð´Ð¸Ñ 10,20,30
every(callback[, thisObject])
возвÑаÑÐ°ÐµÑ true, еÑли вÑзов callback
-ÑÑнкÑии веÑнÑл true Ð´Ð»Ñ Ð²ÑеÑ
ÑлеменÑов маÑÑива.
function isNumber(value) {
return typeof value == "number";
}
var a1 = [1, 2, 3];
console.log(a1.every(isNumber)); // вÑÐ²Ð¾Ð´Ð¸Ñ true
var a2 = [1, "2", 3];
console.log(a2.every(isNumber)); // вÑÐ²Ð¾Ð´Ð¸Ñ false
some(callback[, thisObject])
возвÑаÑÐ°ÐµÑ true, еÑли вÑзов callback
-ÑÑнкÑии веÑнÑÑ true Ñ
оÑÑ Ð±Ñ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑлеменÑа.
function isNumber(value) {
return typeof value == "number";
}
var a1 = [1, 2, 3];
console.log(a1.some(isNumber)); // вÑÐ²Ð¾Ð´Ð¸Ñ true
var a2 = [1, "2", 3];
console.log(a2.some(isNumber)); // вÑÐ²Ð¾Ð´Ð¸Ñ true
var a3 = ["1", "2", "3"];
console.log(a3.some(isNumber)); // вÑÐ²Ð¾Ð´Ð¸Ñ false
Те из меÑодов вÑÑе, ÑÑо пÑинимаÑÑ callback
-ÑÑнкÑÐ¸Ñ Ð² каÑеÑÑве аÑгÑменÑа, извеÑÑÐ½Ñ ÐºÐ°Ðº меÑÐ¾Ð´Ñ Ð¸ÑеÑаÑии (iterative methods), поÑÐ¾Ð¼Ñ ÑÑо опÑеделÑннÑм обÑазом пÑоÑ
одÑÑÑÑ Ð¿Ð¾ вÑем ÑлеменÑам маÑÑива. ÐаждÑй из ÑакиÑ
меÑодов пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð²ÑоÑой, опÑионалÑнÑй ÑлеменÑ, назÑваемÑй thisObject
. ÐÑли ÑÑÐ¾Ñ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ð¿ÑиÑÑÑÑÑвÑеÑ, Ñо его знаÑение пÑиÑваиваеÑÑÑ ÐºÐ»ÑÑÐµÐ²Ð¾Ð¼Ñ ÑÐ»Ð¾Ð²Ñ this
в Ñеле callback
-ÑÑнкÑии. ÐнаÑе, как и в лÑбом дÑÑгом ÑлÑÑае вÑзова ÑÑнкÑии вне Ñвного конÑекÑÑа, this
бÑÐ´ÐµÑ ÑÑÑлаÑÑÑÑ Ð½Ð° глобалÑнÑй обÑÐµÐºÑ (window
).
РдейÑÑвиÑелÑноÑÑи callback
-ÑÑнкÑÐ¸Ñ Ð²ÑзÑваеÑÑÑ Ñ ÑÑÐµÐ¼Ñ Ð°ÑгÑменÑами. ÐеÑвÑй аÑгÑÐ¼ÐµÐ½Ñ - ÑекÑÑий ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива, вÑоÑой - Ð¸Ð½Ð´ÐµÐºÑ ÑÑого ÑлеменÑа, и ÑÑеÑий - ÑÑÑлка на Ñам маÑÑив. Ðднако, в JavaScript, ÑÑнкÑии игноÑиÑÑÑÑ Ð»ÑбÑе аÑгÑменÑÑ, коÑоÑÑе не пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ÑпиÑке аÑгÑменÑов. Таким обÑазом, Ð½ÐµÑ Ð½Ð¸Ñего ÑÑÑаÑного в иÑполÑзовании ÑÑнкÑии Ñ Ð¾Ð´Ð½Ð¸Ð¼ аÑгÑменÑом, Ñакой как alert
.
reduce(callback[, initialValue])
поÑледоваÑелÑно пÑименÑÐµÑ callback
-ÑÑнкÑÐ¸Ñ callback(firstValue, secondValue)
Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑвеÑÑи вÑе ÑлеменÑÑ Ð¼Ð°ÑÑива к Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð·Ð½Ð°ÑениÑ. РпеÑвÑй паÑамеÑÑ ÑÑнкÑии пеÑедаÑÑÑÑ Ð¿ÑедÑдÑÑий ÑезÑлÑÑÐ°Ñ ÑабоÑÑ ÑÑнкÑии или пеÑвÑй ÑлеменÑ, а во вÑоÑой - ÑекÑÑий ÑлеменÑ. ТÑеÑÑим паÑамеÑÑом пеÑедаÑÑÑÑ Ð¸Ð½Ð´ÐµÐºÑ ÑекÑÑего ÑлеменÑа.
var a = [10, 20, 30];
var total = a.reduce(function (first, second, index) {
return first + second;
}, 0);
console.log(total); // вÑÐ²Ð¾Ð´Ð¸Ñ 60
reduceRight(callback[, initalvalue])
ÑабоÑÐ°ÐµÑ Ñак же как и reduce()
, но поÑÑдок обÑ
ода ведÑÑÑÑ Ð¾Ñ ÐºÐ¾Ð½Ñа к наÑалÑ.
ÐеÑÐ¾Ð´Ñ reduce
и reduceRight
ÑвлÑÑÑÑÑ Ð½Ð°Ð¸Ð¼ÐµÐ½ÐµÐµ оÑевиднÑми меÑодами обÑекÑа Array. Ðни Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑÑÑ Ð² алгоÑиÑмаÑ
, коÑоÑÑе ÑекÑÑÑивно ÑовмеÑаÑÑ Ð´Ð²Ð° ÑлеменÑа маÑÑива, Ð´Ð»Ñ ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð²Ñей поÑледоваÑелÑноÑÑи к Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð·Ð½Ð°ÑениÑ.
ÐаÑÑÐ¸Ð²Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñми, Ñо еÑÑÑ Ð¼Ð°ÑÑив Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¼Ð°ÑÑÐ¸Ð²Ñ Ð² ÑлеменÑÐ°Ñ . ÐÑполÑзÑÑ ÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¼Ð°ÑÑивов JavaScript, можно поÑÑÑоиÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ð¼ÐµÑнÑе маÑÑивÑ.
СледÑÑÑий код ÑоздаÑÑ Ð´Ð²ÑмеÑнÑй маÑÑив:
var a = new Array(4);
for (i = 0; i < 4; i++) {
a[i] = new Array(4);
for (j = 0; j < 4; j++) {
a[i][j] = "[" + i + "," + j + "]";
}
}
Ð ÑÑом пÑимеÑе ÑоздаÑÑÑÑ Ð¼Ð°ÑÑив Ñо ÑледÑÑÑим ÑодеÑжимÑм:
Ð Ñд 0: [0,0] [0,1] [0,2] [0,3] Ð Ñд 1: [1,0] [1,1] [1,2] [1,3] Ð Ñд 2: [2,0] [2,1] [2,2] [2,3] Ð Ñд 3: [3,0] [3,1] [3,2] [3,3]ÐаÑÑÐ¸Ð²Ñ Ð¸ ÑегÑлÑÑнÑе вÑÑажениÑ
Ðогда маÑÑив ÑвлÑеÑÑÑ ÑезÑлÑÑаÑом вÑÑиÑлений ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°Ð´ ÑÑÑокой, он ÑодеÑÐ¶Ð¸Ñ ÑвойÑÑва и ÑлеменÑÑ Ñ Ð¸Ð½ÑоÑмаÑией о ÑовпадениÑÑ
. ÐаÑÑив возвÑаÑаеÑÑÑ ÑÑнкÑиÑми RegExp.exec()
, String.match()
и String.split()
ÐодÑобнее о Ñом, как иÑполÑзоваÑÑ Ð¼Ð°ÑÑÐ¸Ð²Ñ Ñ ÑегÑлÑÑнÑми вÑÑажениÑми ÑмоÑÑиÑе в Regular Expressions.
ÐекоÑоÑÑе обÑекÑÑ Ð² JavaScript, Ñакие как NodeList
, возвÑаÑаемÑе меÑодом document.getElementsByTagName()
, или ÑпеÑиалÑнÑй обÑÐµÐºÑ arguments
, доÑÑÑпнÑй внÑÑÑи ÑÑнкÑии, вÑглÑдÑÑ Ð¸ ведÑÑ ÑÐµÐ±Ñ ÐºÐ°Ðº обÑÑнÑе маÑÑивÑ, однако не Ð¸Ð¼ÐµÐµÑ Ð²ÑеÑ
пÑиÑÑÑиÑ
маÑÑÐ¸Ð²Ñ Ð¼ÐµÑодов. Так напÑимеÑ, обÑÐµÐºÑ arguments
Ð¸Ð¼ÐµÐµÑ ÑвойÑÑво length
, но не Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑода forEach()
.
ÐеÑÐ¾Ð´Ñ Ð¸Ð· пÑоÑоÑипа Array, могÑÑ Ð±ÑÑÑ Ð²ÑÐ·Ð²Ð°Ð½Ñ Ð´Ð»Ñ Ð¼Ð°ÑÑивоподобнÑÑ Ð¾Ð±ÑекÑов. ÐапÑимеÑ:
function printArguments() { Array.prototype.forEach.call(arguments, function(item) { console.log(item); }); }
Также меÑÐ¾Ð´Ñ Ð¸Ð· пÑоÑоÑипа Array могÑÑ Ð±ÑÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ñ Ð¸ к ÑÑÑокам, поÑÐ¾Ð¼Ñ ÐºÐ°Ðº ÑÑÑоки пÑедоÑÑавлÑÑÑ Ð´Ð¾ÑÑÑп к Ñвоим Ñимволам ÑÑ Ð¾Ð´Ð½Ñм обÑазом:
Array.prototype.forEach.call("a string", function (chr) {
console.log(chr);
});
ТипизиÑованнÑе маÑÑивÑ
JavaScript typed arrays (ÑипизиÑованнÑе маÑÑивÑ) ÑвлÑÑÑÑÑ Ð¼Ð°ÑÑивоподобнÑми обÑекÑами, коÑоÑÑе пÑедоÑÑавлÑÑÑ Ð¼ÐµÑ
анизм доÑÑÑпа к ÑÑÑÑм бинаÑнÑм даннÑм. Ðак Ð²Ñ Ñже знаеÑе, Array
маÑÑÐ¸Ð²Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑки ÑаÑÑÑÑ, ÑокÑаÑаÑÑÑÑ Ð¸ могÑÑ ÑодеÑжаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð»ÑбÑÑ
Ñипов JavaScript. Ðвижки JavaScript пÑоизводÑÑ Ð¾Ð¿ÑимизаÑии, благодаÑÑ ÑемÑ, ÑÑи опеÑаÑии пÑоиÑÑ
одÑÑ Ð±ÑÑÑÑо. Ðднако, веб пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÑановÑÑÑÑ Ð²Ñе более моÑнÑми, добавлÑÑÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи манипÑлÑÑии Ñо звÑковÑми и видеоданнÑми, доÑÑÑп к ÑÑÑÑм даннÑм WebSockets, и ÑÐ¾Ð¼Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ðµ. СÑановиÑÑÑ Ð¾ÑевиднÑм, ÑÑо возможноÑÑÑ Ð±ÑÑÑÑой и ÑÑÑекÑивной ÑабоÑÑ Ñ Ð´Ð²Ð¾Ð¸ÑнÑми даннÑми в JavaScript бÑÐ´ÐµÑ Ð¾ÑÐµÐ½Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾Ð¹. ÐÐ»Ñ Ñего ÑипизиÑованнÑе маÑÑÐ¸Ð²Ñ Ð¸ пÑедназнаÑенÑ.
ÐÐ»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð°ÐºÑималÑной гибкоÑÑи и пÑоизводиÑелÑноÑÑи, ÑеализаÑÐ¸Ñ ÑипизиÑованнÑÑ
маÑÑивов в JavaScript Ñазделена на бÑÑеÑÑ Ð¸ пÑедÑÑавлениÑ. ÐÑÑÐµÑ (ArrayBuffer
) ÑÑо обÑекÑ, пÑедÑÑавлÑÑÑий из ÑÐµÐ±Ñ Ð±Ð»Ð¾Ðº даннÑÑ
; он не Ð¸Ð¼ÐµÐµÑ ÑоÑмаÑа и не пÑедоÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи доÑÑÑпа к ÑÐ²Ð¾ÐµÐ¼Ñ ÑодеÑжимомÑ. ÐÐ»Ñ Ð´Ð¾ÑÑÑпа к памÑÑи бÑÑеÑа вам нÑжно иÑполÑзоваÑÑ Ð¿ÑедÑÑавление. ÐÑедÑÑавление ÑвлÑÐµÑ Ñобой конÑекÑÑ, имеÑÑий Ñип даннÑÑ
, наÑалÑнÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² бÑÑеÑе, и колиÑеÑÑво ÑлеменÑов â ÑÑо позволÑÐµÑ Ð¿ÑедÑÑавиÑÑ Ð´Ð°Ð½Ð½Ñе в виде акÑÑалÑного ÑипизиÑованного маÑÑива.
ÐбÑÐµÐºÑ ArrayBuffer
ÑÑо ÑÑандаÑÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð±Ð¸Ð½Ð°ÑнÑÑ
даннÑÑ
Ñ ÑикÑиÑованной длиной. ÐÑ Ð½Ðµ можеÑе манипÑлиÑоваÑÑ ÑодеÑжимÑм ArrayBuffer
напÑÑмÑÑ. ÐмеÑÑо ÑÑого необÑ
одимо ÑоздаÑÑ ÑипизиÑованное пÑедÑÑавление DataView
, коÑоÑое бÑÐ´ÐµÑ Ð¾ÑобÑажаÑÑ Ð±ÑÑÐµÑ Ð² опÑеделÑнном ÑоÑмаÑе, и даÑÑ Ð´Ð¾ÑÑÑп на запиÑÑ Ð¸ ÑÑение его ÑодеÑжимого.
Ðазвание ÑипизиÑованного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива говоÑÐ¸Ñ Ñамо за ÑебÑ. Ðно пÑедÑÑавлÑÐµÑ Ð¼Ð°ÑÑив в ÑаÑпÑоÑÑÑанÑннÑÑ
ÑиÑловÑÑ
ÑоÑмаÑаÑ
, ÑакиÑ
как Int8
, Uint32
, Float64
и Ñак далее. СÑеди пÑоÑиÑ
ÑÑÑеÑÑвÑÐµÑ ÑпеÑиалÑное пÑедÑÑавление Uint8ClampedArray
. Ðно огÑаниÑÐ¸Ð²Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑеÑвалом Ð¾Ñ 0 до 255. ÐÑо полезно, напÑимеÑ, пÑи ÐбÑабоÑке даннÑÑ
изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² Canvas.
ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÑобнÑÑ
Ñведений ÑмоÑÑиÑе ТипизиÑованнÑе маÑÑÐ¸Ð²Ñ JavaScript и ÑпÑавоÑнÑÑ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ Ð´Ð»Ñ TypedArray
.
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