КампутарыПраграмаванне

JS foreach object як канструкцыя варыянтаў

Сінтаксіс JavaScript прадастаўляе магчымасць аб'ядноўваць зменныя ў масівы і аб'екты. Доступ да элементаў можна атрымаць праз індэксы і імёны, з дапамогай аператараў цыклу.

Але не заўсёды можна ведаць колькасць элементаў у калекцыі на этапе распрацоўкі і не заўсёды зручна выкарыстоўваць сінтаксіс мовы ў межах прадугледжанай ім семантыкі.

класічныя канструкцыі

Звычайны аператар цыкла "for (var i = 0; i

var i = 0;
while (typeof aData [i]! = 'undefined') {... aData [i]; ... i ++; },

калі колькасць элементаў невядома.

Можна пабудаваць таксама іншыя алгарытмы напаўнення і апрацоўкі масіваў, але значна зручней выкарыстоўваць новыя, сучасныя варыянты.

Класіка добрая, калі трэба апрацоўваць анкеты аддзела кадраў (прозвішча, імя, імя па бацьку, пасада), карткі па абсталяванні (мадэль, вытворца, прадавец, дата продажу) і іншыя дадзеныя, якія структурна не змяняюцца і ўяўляюць сукупны цікавасць.

Калі элемент масіва сам па сабе з'яўляецца аб'ектам або структурай, мае ўласныя ўласцівасці і метады, то класіка не спраўляецца з дынамікай колькасці і якасці, а масіў набывае іншы сэнс.

Цыклы па кожнаму элементу

У дынаміку істотным з'яўляецца праява масівам уласцівасцяў актуальнага элемента. Канструкцыя JS foreach array, у некалькі выдатным ад звыклых (прынятых на іншых мовах) варыянце, дазваляе даць масіву магчымасць праяўляць свае ўласцівасці праз актуальны яго элемент.

Дапусцім, адзін масіў змяшчае ў сабе дарогі (іх якасныя і колькасныя характарыстыкі), а другі масіў - аўтамабілі, якія могуць ехаць толькі па пэўных дарогах і маюць розныя па аб'ёме бакі для паліва, то ёсць адлегласці паміж запраўкамі таксама маюць значэнне.

У такім варыянце мэтазгодны алгарытм павінен узяць за аснову, да прыкладу, дарогу і выбраць аўтамабілі, якія змогуць па ёй праехаць. А лепш, калі дарога і аўтамабіль, выступаючы ў праграме як аб'екты, "самі сябе знойдуць". Гэта натуральнае прымяненне аб'ектна-арыентаванага праграмавання, якое, апроч усяго іншага, не прыводзіць да неабходнасці змены алгарытму пры змене калекцый дарог і аўтамабіляў, аўтаматычна ўлічвае дарогі ў рамонце, аўтамабілі на тэхабслугоўванні і г.д.

Тэхнічна на JS foreach канструкцыя выглядае вельмі проста: "aData.forEach (fData);", дзе fData - функцыя, якая ўжываецца да кожнага элементу масіва aData:

function fData (value, index) {sText + = index + '=' + value + '; '; }.

Калі зыходныя дадзеныя прадстаўлены так:

var aData = [1,2,3,4];
aData.push (11);
aData.push (22);
aData.push (44);
aData.push ( 'line 1');
aData.push ( 'line 2');

var sText = '',

то вынік такога прымянення JS foreach будзе:

"0 = 1; 1 = 2; 2 = 3; 3 = 4; 4 = 11; 5 = 22; 6 = 44; 7 = line 1; 8 = line 2;".

Асаблівасці масіваў з аб'ектамі

Аб'ект на JavaScript - асаблівы. Выкарыстанне аб'ектаў на гэтай мове істотна адрозніваецца ад рэалізацый на іншых мовах. Аб'ект - гэта сам па сабе масіў уласцівасцяў і метадаў. Пры гэтым апошнія фактычна выконваюць дзеянні, захоўваючы або рэдагуючы сваё або знешняе ўтрыманне іншых аб'ектаў, масіваў, зменных.

Аб'екты, прыходзячы ў масіў, як кадры на кінастужцы, пры пераборы ў канструкцыі JS foreach object ўтвараюць новую семантыку: канструкцыю змянянага сэнсу.

Так, дарогі самі па сабе атрымліваюць магчымасць выбіраць машыны, якія могуць па іх ездзіць, а апошнія фільтруюць даступныя дня іх маршруты. Калі не звяртаць увагі, што надмернасць ў такім варыянце праграмавання павышае надзейнасць кода, то задача - вызначыць маршрут дастаўкі грузу - ператварае канструкцыю JS foreach ў сэнсавае і простае рашэнне: раскласці маршруты па дарогах, выбраць машыны і выканаць дастаўку грузаў.

Калі маршруты, дарогі і машыны - масівы аб'ектаў, то алгарытм значна спрашчаецца. Здавалася б дзіўным, што з'яўленне канструкцыі JS foreach так доўга прымусіла сябе чакаць. Аднак, нягледзячы на прастату напісанага, на практыцы даволі складана яе рэалізаваць.

Практыка JS foreach і рэальныя аб'екты

Мысленне сучаснага распрацоўніка аперуе звыклымі для праграмавання аб'ектамі, але ніяк не аб'ектамі рэальнай задачы. Не прынята разумець пад такімі дарогу, машыну, маршрут, адлегласць ...

Аб'ектна-арыентаванае праграмаванне развівалася цярністы шляхамі, і традыцыйна стала прынята ствараць аб'екты праграм: масіў, форма, кнопка, акно выбару маршруту і да т.п.

Акрамя таго, JS foreach нароўні з іншымі канструкцыямі мовы спаўняецца ў браўзэры наведвальніка, што прыўносіць на практыцы сур'ёзныя абмежаванні. Далёка не кожны распрацоўшчык гатовы дзяліцца сваім кодам. Эфектыўныя прыклады выкарыстання масіваў і калекцый рэальных аб'ектаў - добры спосаб палепшыць веды.

Аднак даступнасць JavaScript кода для непрадугледжаную распрацоўшчыкам выкарыстання аказвае ўскоснае ўплыў на развіццё перспектыўных ідэй стварэння дынамічных і рэальных аб'ектаў. Канструкцыі JS foreach яшчэ не дасканалыя, і развіццё іх семантыкі ўяўляецца вельмі перспектыўным напрамкам.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.unansea.com. Theme powered by WordPress.