හැඳින්වීම
මගේ විද්යාලයේ සිටම, මම ජාවා, ජාවාස්ක්රිප්ට්, පැස්කල්, ඒබීඒපී හි වැඩසටහන්ගත කර ඇත්තෙමි ඉගෙන ගත් , , ප්රගති 4 ජීඑල්, සී / සී ++ සහ සමහර විට මට සිතිය නොහැකි වෙනත් භාෂා කිහිපයකින් වැඩසටහන්ගත කර ඇත්තෙමි.
ඔවුන් සියල්ලන්ටම ඔවුන්ගේම භාෂාමය අනන්යතා ඇති අතර, මෙම සෑම භාෂාවක්ම එකම මූලික සංකල්ප බොහොමයක් බෙදා ගනී. එවැනි සංකල්පවලට ක්රියා පටිපාටි / කාර්යයන්, IF
-ස්ථාන, FOR
-ලූප් සහ WHILE
-ලූප් ඇතුළත් වේ.
සාම්ප්රදායික- for
ලූප්
සාම්ප්රදායික for
පුඩුවක් සංරචක තුනක් ඇත:
- ආරම්භ කිරීම: පළමු වරට පෙනුමේ කොටස ක්රියාත්මක කිරීමට පෙර ක්රියාත්මක වේ
- කොන්දේසිය: ලූප් බ්ලොක් ක්රියාත්මක කිරීමට පෙර සෑම අවස්ථාවකම කොන්දේසියක් පරික්ෂා කර, අසත්ය නම් ලූපයෙන් ඉවත් වේ
- පසු සිතිවිල්ල: ලූප් බ්ලොක් ක්රියාත්මක කිරීමෙන් පසු සෑම අවස්ථාවකම සිදු කරනු ලැබේ
මෙම සංරචක තුන ;
සංකේතයකින් එකිනෙකාගෙන් වෙන් කරනු ලැබේ . මෙම එක් එක් සංරචක තුන සඳහා අන්තර්ගතය අත්යවශ්ය නොවේ, එයින් අදහස් කරන්නේ පහත දැක්වෙන්නේ for
හැකි අවම අවම ලූපයයි:
for (;;) {
// Do stuff
}
ඇත්ත වශයෙන්ම, ධාවනය නැවැත්වීම සඳහා ඔබට එම ලූපය තුළ if(condition === true) { break; }
හෝ if(condition === true) { return; }
කොතැනක හෝ ඇතුළත් කිරීමට අවශ්ය වනු ඇත for
.
සාමාන්යයෙන්, ආරම්භය දර්ශකයක් ප්රකාශ කිරීම සඳහා භාවිතා කරනු ලැබේ, කොන්දේසිය එම දර්ශකය අවම හෝ උපරිම අගයක් සමඟ සංසන්දනය කිරීමට භාවිතා කරයි, සහ පසු සිතිවිල්ල දර්ශකය වැඩි කිරීමට භාවිතා කරයි:
for (var i = 0, length = 10; i < length; i++) {
console.log(i);
}
for
අරාවක් හරහා ලූප් කිරීමට සාම්ප්රදායික ලූපයක් භාවිතා කිරීම
අරාව හරහා ලූප් කිරීමේ සාම්ප්රදායික ක්රමය මෙයයි:
for (var i = 0, length = myArray.length; i < length; i++) {
console.log(myArray[i]);
}
නැතහොත්, ඔබ පසුපසට ලූප කිරීමට කැමති නම්, ඔබ මෙය කරන්නේ:
for (var i = myArray.length - 1; i > -1; i--) {
console.log(myArray[i]);
}
කෙසේ වෙතත්, බොහෝ වෙනස්කම් ඇත, උදාහරණයක් ලෙස මෙය:
for (var key = 0, value = myArray[key], length = myArray.length; key < length; value = myArray[++key]) {
console.log(value);
}
... නැත්නම් මේ ...
var i = 0, length = myArray.length;
for (; i < length;) {
console.log(myArray[i]);
i++;
}
... හෝ මේ:
var key = 0, value;
for (; value = myArray[key++];){
console.log(value);
}
වඩාත්ම සුදුසු දෙය බොහෝ දුරට පුද්ගලික රසය හා ඔබ ක්රියාත්මක කරන විශේෂිත භාවිත අවස්ථාව යන දෙකටම අදාළ වේ.
මෙම සෑම වෙනස්කමක්ම ඉතා පැරණි ඒවා ඇතුළුව සියලුම බ්රව්සර් මගින් සහාය දක්වන බව සලකන්න!
ඒ while
පුඩුවක්
ලූපයකට එක් විකල්පයක් for
වන්නේ while
ලූපයකි. අරාව හරහා ලූප වීමට, ඔබට මෙය කළ හැකිය:
var key = 0;
while(value = myArray[key++]){
console.log(value);
}
සාම්ප්රදායික for
ලූප මෙන් , while
පැරණිම බ්රව්සර් පවා ලූප සඳහා සහය දක්වයි.
සෑම ලූපයක්ම ලූපයක් ලෙස නැවත ලිවිය හැකි බව සලකන්න for
. නිදසුනක් ලෙස, මෙහි ඇති while
ලූපය මෙම for
-ලූප් ආකාරයටම ක්රියා කරයි :
for(var key = 0; value = myArray[key++];){
console.log(value);
}
For...in
හා for...of
JavaScript හි, ඔබට මෙයද කළ හැකිය:
for (i in myArray) {
console.log(myArray[i]);
}
කෙසේ වෙතත්, මෙය for
සෑම අවස්ථාවකම සාම්ප්රදායික පුඩුවක් ලෙස හැසිරෙන්නේ නැති නිසාත්, සලකා බැලිය යුතු අතුරු ආබාධ ඇතිවිය හැකි නිසාත් මෙය ප්රවේශමෙන් භාවිතා කළ යුතුය. අරාව පුනරාවර්තනය සමඟ "සඳහා ... සඳහා" භාවිතා කිරීම නරක අදහසක් වන්නේ මන්දැයි බලන්න. වැඩි විස්තර සඳහා.
විකල්පයක් ලෙස for...in
, දැන් ද තිබේ for...of
. පහත උදාහරණයෙන් දැක්වෙන්නේ for...of
ලූපයක් සහ ලූපයක් අතර වෙනසයි for...in
:
var myArray = [3, 5, 7];
myArray.foo = "hello";
for (var i in myArray) {
console.log(i); // logs 0, 1, 2, "foo"
}
for (var i of myArray) {
console.log(i); // logs 3, 5, 7
}
මීට අමතරව, ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් හි කිසිදු සංස්කරණයක් for...of
( එජ් 12+ සහාය නොදක්වයි) සහ for...in
අවම වශයෙන් ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 10 ක් අවශ්ය බව ඔබ සලකා බැලිය යුතුය.
Array.prototype.forEach()
for
-Lops සඳහා විකල්පයක් වන්නේ Array.prototype.forEach()
, එය පහත දැක්වෙන වාක්ය ඛණ්ඩය භාවිතා කරයි:
myArray.forEach(function(value, key, myArray) {
console.log(value);
});
Array.prototype.forEach()
සියලුම නවීන බ්රව්සර් මෙන්ම ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 9 සහ ඊට පසු සහය දක්වයි.
පුස්තකාල
අවසාන වශයෙන්, බොහෝ උපයෝගිතා පුස්තකාලවල ද ඒවායේ foreach
වෙනස්කමක් ඇත. AFAIK, වඩාත් ජනප්රිය ඒවා තුන නම්:
jQuery.each()
, jQuery හි :
$.each(myArray, function(key, value) {
console.log(value);
});
_.each()
, Underscore.js හි :
_.each(myArray, function(value, key, myArray) {
console.log(value);
});
_.forEach()
, Lodash.js හි :
_.forEach(myArray, function(value, key) {
console.log(value);
});