Array
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
* Some parts of this feature may have varying levels of support.
ÐбÑÐµÐºÑ Array, как и маÑÑÐ¸Ð²Ñ Ð² дÑÑгиÑ
ÑзÑкаÑ
пÑогÑаммиÑованиÑ, позволÑÐµÑ Ñ
ÑаниÑÑ ÐºÐ¾Ð»Ð»ÐµÐºÑÐ¸Ñ Ð¸Ð· неÑколÑкиÑ
ÑлеменÑов под одним именем пеÑеменной и Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð±ÑиÑ
опеÑаÑий Ñ Ð¼Ð°ÑÑивами.
ÐпиÑание
ÐаÑÑÐ¸Ð²Ñ ÑвлÑÑÑÑÑ ÑпиÑкоподобнÑми обÑекÑами, ÑÑи пÑоÑоÑÐ¸Ð¿Ñ ÑодеÑÐ¶Ð°Ñ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑий обÑ
ода и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива. Ðи ÑÐ°Ð·Ð¼ÐµÑ JavaScript-маÑÑива, ни ÑÐ¸Ð¿Ñ ÐµÐ³Ð¾ ÑлеменÑов не ÑвлÑÑÑÑÑ ÑикÑиÑованнÑми. ÐоÑколÑÐºÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¼Ð°ÑÑива Ð¼Ð¾Ð¶ÐµÑ ÑвелиÑиваÑÑÑÑ Ð¸ ÑменÑÑаÑÑÑÑ Ð² лÑбое вÑемÑ, Ñо Ð½ÐµÑ Ð³Ð°ÑанÑии, ÑÑо маÑÑив окажеÑÑÑ Ð¿Ð»Ð¾ÑнÑм. То еÑÑÑ, пÑи ÑабоÑе Ñ Ð¼Ð°ÑÑивом Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ ÑиÑÑаÑиÑ, ÑÑо ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива, к коÑоÑÐ¾Ð¼Ñ Ð²Ñ Ð¾Ð±ÑаÑиÑеÑÑ, бÑÐ´ÐµÑ Ð¿ÑÑÑÑм и веÑнÑÑ undefined. Ð Ñелом, ÑÑо ÑÐ´Ð¾Ð±Ð½Ð°Ñ Ñ
аÑакÑеÑиÑÑика; но еÑли ÑÑа оÑобенноÑÑÑ Ð¼Ð°ÑÑива не желаÑелÑна в ваÑем ÑпеÑиÑиÑеÑком ÑлÑÑае, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑаÑÑмоÑÑеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑипизиÑованнÑÑ
маÑÑивов.
ÐекоÑоÑÑе полагаÑÑ, ÑÑо Ð²Ñ Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ Ð¼Ð°ÑÑив в каÑеÑÑве аÑÑоÑиаÑивного маÑÑива. РлÑбом ÑлÑÑае, вмеÑÑо него Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¿ÑоÑÑÑе обÑекÑÑ, Ñ
оÑÑ Ñ Ð½Ð¸Ñ
еÑÑÑ Ð¸ Ñвои подводнÑе камни. СмоÑÑиÑе поÑÑ ÐегковеÑнÑе JavaScript-ÑловаÑи Ñ Ð¿ÑоизволÑнÑми клÑÑами(англ.) в каÑеÑÑве пÑимеÑа.
ÐоÑÑÑп к ÑлеменÑам маÑÑива
ÐаÑÑÐ¸Ð²Ñ Ð² JavaScript индекÑиÑÑÑÑÑÑ Ñ Ð½ÑлÑ: пеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива Ð¸Ð¼ÐµÐµÑ Ð¸Ð½Ð´ÐµÐºÑ, ÑавнÑй 0, а Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ñледнего ÑлеменÑа Ñавен знаÑÐµÐ½Ð¸Ñ ÑвойÑÑва маÑÑива length минÑÑ 1.
const arr = ["пеÑвÑй ÑлеменÑ", "вÑоÑой ÑлеменÑ", "поÑледний ÑлеменÑ"];
console.log(arr[0]); // напеÑаÑÐ°ÐµÑ 'пеÑвÑй ÑлеменÑ'
console.log(arr[1]); // напеÑаÑÐ°ÐµÑ 'вÑоÑой ÑлеменÑ'
console.log(arr[arr.length - 1]); // напеÑаÑÐ°ÐµÑ 'поÑледний ÑлеменÑ'
ÐлеменÑÑ Ð¼Ð°ÑÑива ÑвлÑÑÑÑÑ ÑвойÑÑвами, ÑоÑно Ñакими же, как, напÑимеÑ, ÑвойÑÑво toString, однако попÑÑка полÑÑиÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива по имени его ÑвойÑÑва пÑиведÑÑ Ðº ÑинÑакÑиÑеÑкой оÑибке, поÑколÑÐºÑ Ð¸Ð¼Ñ ÑвойÑÑва не ÑвлÑеÑÑÑ Ð´Ð¾Ð¿ÑÑÑимÑм именем JavaScript:
console.log(arr.0); // ÑинÑакÑиÑеÑÐºÐ°Ñ Ð¾Ñибка
ÐÑо не оÑобенноÑÑÑ Ð¼Ð°ÑÑивов или иÑ
ÑвойÑÑв. Ð JavaScript к ÑвойÑÑвам, наÑинаÑÑимÑÑ Ñ ÑиÑÑÑ, невозможно обÑаÑиÑÑÑÑ Ð¿Ð¾ÑÑедÑÑвом ÑоÑеÑной ноÑаÑии; к ним можно обÑаÑиÑÑÑÑ ÑолÑко Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑкобоÑной ноÑаÑии. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ Ð¾Ð±ÑÐµÐºÑ Ñо ÑвойÑÑвом, названнÑм '3d', Ð²Ñ ÑможеÑе обÑаÑиÑÑÑÑ Ðº Ð½ÐµÐ¼Ñ ÑолÑко поÑÑедÑÑвом ÑкобоÑной ноÑаÑии. ÐÑимеÑÑ:
const years = [1950, 1960, 1970, 1980, 1990, 2000, 2010];
console.log(years.0); // ÑинÑакÑиÑеÑÐºÐ°Ñ Ð¾Ñибка
console.log(years[0]); // ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº положено
renderer.3d.setTexture(model, 'character.png'); // ÑинÑакÑиÑеÑÐºÐ°Ñ Ð¾Ñибка
renderer['3d'].setTexture(model, 'character.png'); // ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº положено
ÐбÑаÑиÑе внимание, ÑÑо во вÑоÑом пÑимеÑе 3d заклÑÑено в кавÑÑки: '3d'. ÐндекÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ заклÑÑаÑÑ Ð² кавÑÑки (напÑÐ¸Ð¼ÐµÑ years['2'] вмеÑÑо years[2]), но в ÑÑом Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи. ÐнаÑение 2 в вÑÑажении years[2] бÑÐ´ÐµÑ Ð½ÐµÑвно пÑиведено к ÑÑÑоке движком JavaScript ÑеÑез меÑод пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ toString. Ðменно по ÑÑой пÑиÑине клÑÑи '2' и '02' бÑдÑÑ ÑÑÑлаÑÑÑÑ Ð½Ð° два ÑазнÑÑ
ÑлеменÑа в обÑекÑе years и ÑледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð²ÑÐ²ÐµÐ´ÐµÑ true:
console.log(years["2"] != years["02"]);
ÐналогиÑно, к ÑвойÑÑвам обÑекÑа, ÑвлÑÑÑимÑÑ Ð·Ð°ÑезеÑвиÑованнÑми Ñловами(!) можно полÑÑиÑÑ Ð´Ð¾ÑÑÑп ÑолÑко поÑÑедÑÑвом ÑкобоÑной ноÑаÑии:
const promise = {
var: "text",
array: [1, 2, 3, 4],
};
console.log(promise["array"]);
ÐзаимоÑвÑÐ·Ñ ÑвойÑÑва length Ñ ÑиÑловÑми ÑвойÑÑвами
СвойÑÑво маÑÑивов length взаимоÑвÑзано Ñ ÑиÑловÑми ÑвойÑÑвами. ÐекоÑоÑÑе вÑÑÑоеннÑе меÑÐ¾Ð´Ñ Ð¼Ð°ÑÑива (напÑимеÑ, join, slice, indexOf и Ñ.д.) ÑÑиÑÑваÑÑ Ð·Ð½Ð°Ñение ÑвойÑÑва length пÑи ÑвоÑм вÑзове. ÐÑÑгие меÑÐ¾Ð´Ñ (напÑимеÑ, push, splice и Ñ.д.) в ÑезÑлÑÑаÑе Ñвоей ÑабоÑÑ Ñакже обновлÑÑÑ ÑвойÑÑво length маÑÑива.
const fruits = [];
fruits.push("банан", "Ñблоко", "пеÑÑик");
console.log(fruits.length); // 3
ÐÑи ÑÑÑановке ÑвойÑÑва в маÑÑиве, еÑли ÑвойÑÑво Ð¸Ð¼ÐµÐµÑ Ð´ÐµÐ¹ÑÑвиÑелÑнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð¸ ÑÑÐ¾Ñ Ð¸Ð½Ð´ÐµÐºÑ Ð²ÑÑ
Ð¾Ð´Ð¸Ñ Ð·Ð° пÑÐµÐ´ÐµÐ»Ñ ÑекÑÑиÑ
гÑÐ°Ð½Ð¸Ñ Ð¼Ð°ÑÑива, движок ÑооÑвеÑÑÑвÑÑÑим обÑазом Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ ÑвойÑÑво length:
fruits[5] = "манго";
console.log(fruits[5]); // 'манго'
console.log(Object.keys(fruits)); // ['0', '1', '2', '5']
console.log(fruits.length); // 6
УвелиÑиваем ÑвойÑÑво length
fruits.length = 10;
console.log(Object.keys(fruits)); // ['0', '1', '2', '5']
console.log(fruits.length); // 10
Ðднако, ÑменÑÑение ÑвойÑÑва length пÑиведÑÑ Ðº ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑлеменÑов.
fruits.length = 2;
console.log(Object.keys(fruits)); // ['0', '1']
console.log(fruits.length); // 2
Ðолее подÑобно ÑÑа Ñема оÑвеÑена на ÑÑÑаниÑе, поÑвÑÑÑнной ÑвойÑÑÐ²Ñ Array.length.
Создание маÑÑива Ñ Ð¸ÑполÑзованием ÑезÑлÑÑаÑа ÑопоÑÑавлениÑ
РезÑлÑÑаÑом ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑÑоке ÑвлÑеÑÑÑ JavaScript-маÑÑив. ÐÑÐ¾Ñ Ð¼Ð°ÑÑив Ð¸Ð¼ÐµÐµÑ ÑвойÑÑва и ÑлеменÑÑ, пÑедоÑÑавлÑÑÑие инÑоÑмаÑÐ¸Ñ Ð¾ ÑопоÑÑавлении. ÐодобнÑе маÑÑÐ¸Ð²Ñ Ð²Ð¾Ð·Ð²ÑаÑаÑÑÑÑ Ð¼ÐµÑодами RegExp.exec, String.match и String.replace. ЧÑÐ¾Ð±Ñ Ð±Ñло пÑоÑе понÑÑÑ, оÑкÑда и какие поÑвилиÑÑ ÑвойÑÑва и ÑлеменÑÑ, поÑмоÑÑиÑе ÑледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¸ обÑаÑиÑеÑÑ Ðº ÑаблиÑе ниже:
// СопоÑÑавлÑеÑÑÑ Ñ Ð¾Ð´Ð½Ð¸Ð¼ Ñимволом d, за коÑоÑÑм ÑледÑÐµÑ Ð¾Ð´Ð¸Ð½
// или более Ñимволов b, за коÑоÑÑми ÑледÑÐµÑ Ð¾Ð´Ð¸Ð½ Ñимвол d
// ÐапоминаÑÑÑÑ ÑопоÑÑавивÑиеÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ b и ÑледÑÑÑий за ними Ñимвол d
// РегиÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ
const myRe = /d(b+)(d)/i;
const myArray = myRe.exec("cdbBdbsbz");
СвойÑÑва и ÑлеменÑÑ, возвÑаÑаемÑе из данного ÑопоÑÑавлениÑ, опиÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ:
| СвойÑÑво/ÐÐ»ÐµÐ¼ÐµÐ½Ñ | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ |
|---|---|---|
input |
СвойÑÑво ÑолÑко Ð´Ð»Ñ ÑÑениÑ, оÑÑажаÑÑее оÑигиналÑнÑÑ ÑÑÑокÑ, Ñ ÐºÐ¾ÑоÑой ÑопоÑÑавлÑлоÑÑ ÑегÑлÑÑное вÑÑажение. | cdbBdbsbz |
index |
СвойÑÑво ÑолÑко Ð´Ð»Ñ ÑÑениÑ, ÑвлÑÑÑееÑÑ Ð¸Ð½Ð´ÐµÐºÑом (оÑÑÑÑÑ Ð½Ð°ÑинаеÑÑÑ Ñ Ð½ÑлÑ) в ÑÑÑоке, Ñ ÐºÐ¾ÑоÑого наÑалоÑÑ ÑопоÑÑавление. | 1 |
[0] |
ÐÐ»ÐµÐ¼ÐµÐ½Ñ ÑолÑко Ð´Ð»Ñ ÑÑениÑ, опÑеделÑÑÑий поÑледние ÑопоÑÑавивÑиеÑÑ ÑимволÑ. | dbBd |
[1], ...[n] |
ÐлеменÑÑ ÑолÑко Ð´Ð»Ñ ÑÑениÑ, опÑеделÑÑÑие ÑопоÑÑавивÑиеÑÑ Ð¿Ð¾Ð´ÑÑÑоки, заклÑÑÑннÑе в кÑÑглÑе Ñкобки, еÑли Ñе вклÑÑÐµÐ½Ñ Ð² ÑегÑлÑÑное вÑÑажение. ÐолиÑеÑÑво возможнÑÑ Ð¿Ð¾Ð´ÑÑÑок не огÑаниÑено. | [1]: bB [2]: d |
ÐонÑÑÑÑкÑоÑ
Array()-
СоздаÑÑ Ð½Ð¾Ð²Ñй обÑекÑ
Array.
СÑаÑиÑеÑкие ÑвойÑÑва
Array[@@species]-
ÐозвÑаÑÐ°ÐµÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑ
Array.
СÑаÑиÑеÑкие меÑодÑ
Array.from()-
СоздаÑÑ Ð½Ð¾Ð²Ñй ÑкземплÑÑ
Arrayиз иÑеÑиÑÑемого или маÑÑивоподобного обÑекÑа. Array.fromAsync()-
СоздаÑÑ Ð½Ð¾Ð²Ñй ÑкземплÑÑ
Arrayиз аÑÐ¸Ð½Ñ Ñонно иÑеÑиÑÑемого, иÑеÑиÑÑемого или маÑÑивоподобного обÑекÑа. Array.isArray()-
ÐозвÑаÑаеÑ
trueеÑли аÑгÑÐ¼ÐµÐ½Ñ ÑвлÑеÑÑÑ Ð¼Ð°ÑÑивом иfalseв пÑоÑивном ÑлÑÑае. Array.of()-
СоздаÑÑ Ð½Ð¾Ð²Ñй ÑкземплÑÑ
ArrayÑ Ð¿ÐµÑеменнÑм колиÑеÑÑвом аÑгÑменÑов, незавиÑимо Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва или Ñипа аÑгÑменÑов.
СвойÑÑва ÑкземплÑÑа
ÐÑи ÑвойÑÑва опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² Array.prototype и еÑÑÑ Ñ Ð²ÑеÑ
ÑкземплÑÑов Array.
Array.prototype.constructor-
ФÑнкÑиÑ-конÑÑÑÑкÑоÑ, ÑоздаÑÑÐ°Ñ ÑкземплÑÑ Ð¾Ð±ÑекÑа. ÐÐ»Ñ ÑкземплÑÑов
ArrayнаÑалÑнÑм знаÑением ÑвлÑеÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑArray. Array.prototype[@@unscopables]-
СодеÑÐ¶Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° ÑвойÑÑв, коÑоÑÑе не вклÑÑÐµÐ½Ñ Ð² ÑÑандаÑÑ ECMAScript до веÑÑии ES2015 и коÑоÑÑе игноÑиÑÑÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑом
with.
СобÑÑвеннÑе ÑвойÑÑва каждого ÑкземплÑÑа Array:
length-
ÐÑÑÐ°Ð¶Ð°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑлеменÑов в маÑÑиве.
ÐеÑÐ¾Ð´Ñ ÑкземплÑÑа
Array.prototype.at()-
ÐозвÑаÑÐ°ÐµÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива Ñ ÑказаннÑм индекÑом. ÐÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð¾ÑÑÑÑÑ Ð¸Ð´ÑÑ Ñ ÐºÐ¾Ð½Ñа маÑÑива.
Array.prototype.concat()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, коÑоÑÑй ÑвлÑеÑÑÑ Ð¾Ð±Ñединением ÑекÑÑего Ñ Ð´ÑÑгими маÑÑивами или знаÑениÑми.
Array.prototype.copyWithin()-
ÐопиÑÑÐµÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ ÑлеменÑов внÑÑÑи маÑÑива.
Array.prototype.entries()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ array iterator, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ Ð¿Ð°ÑÑ ÐºÐ»ÑÑ/знаÑение Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ индекÑа в маÑÑиве.
Array.prototype.every()-
ÐозвÑаÑаеÑ
trueеÑли Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² каÑеÑÑве аÑгÑменÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑtrue. Array.prototype.fill()-
ÐаполнÑÐµÑ Ð²Ñе ÑлеменÑÑ Ð¼Ð°ÑÑива Ð¾Ñ Ð½Ð°ÑалÑного индекÑа до поÑледнего ÑказаннÑм знаÑением.
Array.prototype.filter()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑодеÑжаÑий вÑе ÑлеменÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ маÑÑива, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð²ÐµÑнÑла
true. Array.prototype.find()-
ÐозвÑаÑÐ°ÐµÑ Ð·Ð½Ð°Ñение пеÑвого ÑлеменÑа маÑÑива, Ð´Ð»Ñ ÐºÐ¾ÑоÑого пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² каÑеÑÑве аÑгÑменÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑ
true, илиundefinedеÑли ÑÐ°ÐºÐ¸Ñ ÑлеменÑов неÑ. Array.prototype.findIndex()-
ÐозвÑаÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¿ÐµÑвого ÑлеменÑа маÑÑива, Ð´Ð»Ñ ÐºÐ¾ÑоÑого пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² каÑеÑÑве аÑгÑменÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑ
true, или-1еÑли ÑÐ°ÐºÐ¸Ñ ÑлеменÑов неÑ. Array.prototype.findLast()-
ÐозвÑаÑÐ°ÐµÑ Ð·Ð½Ð°Ñение поÑледнего ÑлеменÑа маÑÑива, Ð´Ð»Ñ ÐºÐ¾ÑоÑого пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² каÑеÑÑве аÑгÑменÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑ
true, илиundefinedеÑли ÑÐ°ÐºÐ¸Ñ ÑлеменÑов неÑ. Array.prototype.findLastIndex()-
ÐозвÑаÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ñледнего ÑлеменÑа маÑÑива, Ð´Ð»Ñ ÐºÐ¾ÑоÑого пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² каÑеÑÑве аÑгÑменÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑ
true, или-1еÑли ÑÐ°ÐºÐ¸Ñ ÑлеменÑов неÑ. Array.prototype.flat()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑодеÑжаÑий ÑлеменÑÑ Ð²ÑÐµÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½ÑÑ Ð¼Ð°ÑÑивов до Ñказанной глÑбинÑ.
Array.prototype.flatMap()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑÑоÑмиÑованнÑй вÑзовом пеÑеданной ÑÑнкÑии Ñ ÐºÐ°Ð¶Ð´Ñм ÑлеменÑом, а заÑем «ÑплоÑÑннÑй» на один ÑÑовенÑ.
Array.prototype.forEach()-
ÐÑзÑÐ²Ð°ÐµÑ ÑÑнкÑÐ¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива.
Array.prototype.includes()-
ÐозвÑаÑаеÑ
true, еÑли маÑÑив ÑодеÑÐ¶Ð¸Ñ Ð¿ÐµÑеданное знаÑение иfalseв пÑоÑивном ÑлÑÑае. Array.prototype.indexOf()-
ÐозвÑаÑÐ°ÐµÑ Ð¿ÐµÑвÑй (наименÑÑий) индекÑ, по коÑоÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½ пеÑеданнÑй ÑлеменÑ.
Array.prototype.join()-
ÐбÑединÑÐµÑ Ð²Ñе ÑлеменÑÑ Ð¼Ð°ÑÑива в ÑÑÑокÑ.
Array.prototype.keys()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ array iterator, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ ÐºÐ»ÑÑи каждого индекÑа маÑÑива.
Array.prototype.lastIndexOf()-
ÐозвÑаÑÐ°ÐµÑ Ð¿Ð¾Ñледний (наиболÑÑий) индекÑ, по коÑоÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½ пеÑеданнÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¸Ð»Ð¸
-1еÑли ÑÐ°ÐºÐ¸Ñ ÑлеменÑов неÑ. Array.prototype.map()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив, ÑодеÑжаÑий ÑезÑлÑÑÐ°Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑеданной ÑÑнкÑии к ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑлеменÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ маÑÑива.
Array.prototype.pop()-
УдалÑÐµÑ Ð¿Ð¾Ñледний ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива и возвÑаÑÐ°ÐµÑ ÐµÐ³Ð¾ знаÑение.
Array.prototype.push()-
ÐобавлÑÐµÑ Ð¾Ð´Ð¸Ð½ или более ÑлеменÑов в ÐºÐ¾Ð½ÐµÑ Ð¼Ð°ÑÑива и возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ð¾Ðµ знаÑение
lengthмаÑÑива. Array.prototype.reduce()-
ÐÑзÑÐ²Ð°ÐµÑ ÑказаннÑÑ ÑÑнкÑиÑ-ÑедÑÑÑÐµÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива (Ñлева напÑаво) Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐµÐ´Ð¸Ð½ÑÑвенного знаÑениÑ.
Array.prototype.reduceRight()-
ÐÑзÑÐ²Ð°ÐµÑ ÑказаннÑÑ ÑÑнкÑиÑ-ÑедÑÑÑÐµÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива (ÑпÑава налево) Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐµÐ´Ð¸Ð½ÑÑвенного знаÑениÑ.
Array.prototype.reverse()-
ÐзменÑÐµÑ Ð¿Ð¾ÑÑдок ÑлеменÑов маÑÑива на меÑÑе (Ñо еÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñй маÑÑив) на обÑаÑнÑй (пеÑвÑй ÑÑÐ°Ð½ÐµÑ Ð¿Ð¾Ñледним, поÑледний â пеÑвÑм).
Array.prototype.shift()-
УдалÑÐµÑ Ð¿ÐµÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива и возвÑаÑÐ°ÐµÑ ÐµÐ³Ð¾ знаÑение.
Array.prototype.slice()-
ÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ ÑаÑÑÑ Ð¼Ð°ÑÑива и возвÑаÑÐ°ÐµÑ ÐµÑ Ð² виде нового маÑÑива.
Array.prototype.some()-
ÐозвÑаÑаеÑ
trueеÑли Ñ Ð¾ÑÑ Ð±Ñ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑлеменÑа маÑÑива пеÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð² каÑеÑÑве аÑгÑменÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑtrue. Array.prototype.sort()-
СоÑÑиÑÑÐµÑ ÑлеменÑÑ Ð¼Ð°ÑÑива на меÑÑе (Ñо еÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñй маÑÑив) и возвÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив.
Array.prototype.splice()-
ÐобавлÑÐµÑ Ð¸/или ÑдалÑÐµÑ ÑлеменÑÑ Ð¼Ð°ÑÑива.
Array.prototype.toLocaleString()-
ÐозвÑаÑÐ°ÐµÑ Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½ÑÑ ÑÑÑокÑ, пÑедÑÑавлÑÑÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñй маÑÑив и его ÑлеменÑÑ. ÐеÑеопÑеделÑÐµÑ Ð¼ÐµÑод
Object.prototype.toLocaleString(). Array.prototype.toReversed()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив Ñ ÑлеменÑами в обÑаÑном поÑÑдке без Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ маÑÑива.
Array.prototype.toSorted()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив Ñ Ð¾ÑÑоÑÑиÑованнÑми по возÑаÑÑÐ°Ð½Ð¸Ñ ÑлеменÑами без Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ маÑÑива.
Array.prototype.toSpliced()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив Ñ ÑдалÑннÑми и/или заменÑннÑми ÑлеменÑами без Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ маÑÑива.
Array.prototype.toString()-
ÐозвÑаÑÐ°ÐµÑ ÑÑÑокÑ, пÑедÑÑавлÑÑÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñй маÑÑив и его ÑлеменÑÑ. ÐеÑеопÑеделÑÐµÑ Ð¼ÐµÑод
Object.prototype.toString(). Array.prototype.unshift()-
ÐобавлÑÐµÑ Ð¾Ð´Ð¸Ð½ или более ÑлеменÑов в наÑало маÑÑива и возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ð¾Ðµ знаÑение
lengthмаÑÑива. Array.prototype.values()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ array iterator, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ индекÑа маÑÑива.
Array.prototype.with()-
ÐозвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив Ñ Ð·Ð°Ð¼ÐµÐ½ÑннÑм знаÑением ÑлеменÑа Ñ ÑказаннÑм индекÑом без Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ маÑÑива.
Array.prototype[@@iterator]()-
ÐÑевдоним меÑода
values().
ÐÑимеÑÑ
>ÐÑимеÑ: Ñоздание маÑÑива
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ ÑоздаÑÑ Ð¼Ð°ÑÑив msgArray Ñ Ð´Ð»Ð¸Ð½Ð¾Ð¹ 0, пÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑлеменÑам msgArray[0] и msgArray[99], ÑÑо изменÑÐµÑ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°ÑÑива на 100.
const msgArray = [];
msgArray[0] = "ÐÑивеÑ";
msgArray[99] = "миÑ";
if (msgArray.length === 100) {
console.log("Ðлина Ñавна 100.");
}
Создание маÑÑива
const fruits = ["Яблоко", "Ðанан"];
console.log(fruits.length);
// 2
ÐоÑÑÑп к ÑлеменÑÑ Ð¼Ð°ÑÑива по индекÑÑ
const first = fruits[0];
// Яблоко
const last = fruits[fruits.length - 1];
// Ðанан
ÐÑеÑиÑование по маÑÑивÑ
fruits.forEach(function (item, index, array) {
console.log(item, index);
});
// Яблоко 0
// Ðанан 1
Ðобавление ÑлеменÑа в ÐºÐ¾Ð½ÐµÑ Ð¼Ð°ÑÑива
const newLength = fruits.push("ÐпелÑÑин");
// ["Яблоко", "Ðанан", "ÐпелÑÑин"]
Удаление поÑледнего ÑлеменÑа маÑÑива
const last = fruits.pop(); // Ñдалим ÐпелÑÑин (из конÑа)
// ["Яблоко", "Ðанан"];
Удаление пеÑвого ÑлеменÑа маÑÑива
const first = fruits.shift(); // Ñдалим Яблоко (из наÑала)
// ["Ðанан"];
Ðобавление ÑлеменÑа в наÑало маÑÑива
const newLength = fruits.unshift("ÐлÑбника"); // добавлÑÐµÑ Ð² наÑало
// ["ÐлÑбника", "Ðанан"];
ÐоиÑк номеÑа ÑлеменÑа в маÑÑиве
fruits.push("Ðанго");
// ["ÐлÑбника", "Ðанан", "Ðанго"]
const pos = fruits.indexOf("Ðанан");
// 1
Удаление ÑлеменÑа Ñ Ð¾Ð¿ÑеделÑннÑм индекÑом
const removedItem = fruits.splice(pos, 1); // Ñак можно ÑдалиÑÑ ÑлеменÑ
// ["ÐлÑбника", "Ðанго"]
Удаление неÑколÑÐºÐ¸Ñ ÑлеменÑов, наÑÐ¸Ð½Ð°Ñ Ñ Ð¾Ð¿ÑеделÑнного индекÑа
Ð ÑÑом пÑимеÑе меÑод splice() иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· маÑÑива fruits ÑÑÑок "Ðанан" и "ÐлÑбника" Ñ Ñказанием индекÑа ÑÑÑоки "Ðанан" и колиÑеÑÑва ÑлеменÑов, коÑоÑÑе нÑжно ÑдалиÑÑ.
const fruits = ["Яблоко", "Ðанан", "ÐлÑбника", "Ðанго"];
const start = 1;
const deleteCount = 2;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["Яблоко", "Ðанго"]
console.log(removedItems);
// ["Ðанан", "ÐлÑбника"]
Создание копии маÑÑива
const shallowCopy = fruits.slice(); // Ñак можно ÑоздаÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð°ÑÑива
// ["ÐлÑбника", "Ðанго"]
ÐÑимеÑ: Ñоздание двÑмеÑного маÑÑива
СледÑÑÑий код ÑоздаÑÑ ÑÐ°Ñ Ð¼Ð°ÑнÑÑ Ð´Ð¾ÑÐºÑ Ð² виде двÑмеÑного маÑÑива ÑÑÑок. ÐаÑем он пеÑемеÑÐ°ÐµÑ Ð¿ÐµÑÐºÑ Ð¿ÑÑÑм копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñимвола 'p' в позиÑии (6,4) на позиÑÐ¸Ñ (4,4). СÑаÑÐ°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ (6,4) заÑиÑаеÑÑÑ Ð¿ÑÑÑÑм меÑÑом.
const board = [
["R", "N", "B", "Q", "K", "B", "N", "R"],
["P", "P", "P", "P", "P", "P", "P", "P"],
[" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "],
["p", "p", "p", "p", "p", "p", "p", "p"],
["r", "n", "b", "q", "k", "b", "n", "r"],
];
console.log(board.join("\n") + "\n\n");
// Ðвигаем коÑолевÑкÑÑ Ð¿ÐµÑÐºÑ Ð²Ð¿ÐµÑÑд на две клеÑки
board[4][4] = board[6][4];
board[6][4] = " ";
console.log(board.join("\n"));
Ðиже показан вÑвод:
R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , , , , , , , , , , , , p,p,p,p,p,p,p,p r,n,b,q,k,b,n,r R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , ,p, , , , , , , , , , p,p,p,p, ,p,p,p r,n,b,q,k,b,n,r
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array-objects> |