Такмими амалиётҳои такроршаванда дар JavaScript
Аксар вақт барномасозони оғозӣ бехабарӣ як вазифаи якхеларо чанд маротиба даъват мекунанд, сарфаи захираҳо мекунанд.
Биёед ба мисол нигарем. Бигзор мо сатр дошта бошем, ки як роҳро дар бар мегирад:
javascriptlet path = 'img.png';
Бигзор дар назди мо вазифаи санҷидани ин вуҷуд дорад,
оё роҳ ба васешавии
.png ё .jpg охир меёбад? Як
барномасози оғозӣ чунин
ҳалли зеринро навиштааст:
javascriptlet path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Ин ҳалл чӣ мушкилӣ дорад? Мушкилӣ он аст,
ки усули slice ду маротиба даъват мешавад,
ҳамон корро мекунад. Ин, албатта,
муносиб нест.
Барои такмим додан, бояд буридани сатр як маротиба иҷро карда шавад, натиҷа ба тағирёбанда сабт карда шавад, сипас истифодаи ин тағирёбандаро идома диҳед:
javascriptlet path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Рамзи зерро такмим диҳед:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Рамзи зерро такмим диҳед:
javascriptlet date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Рамзи зерро такмим диҳед:
javascriptlet date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'year ' + date.getFullYear() + ' fits';
} else {
res = 'year ' + date.getFullYear() + ' doesn't fit';
}
console.log(res)