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