Вот вопрос для начинающих JS. Я делаю простое приложение, которое занимает те дни, когда я работаю, день недели, а затем предупреждаю меня, если я работаю сегодня.Javascript - Использование строкового массива в цикле
//
var daysIWork = [
'Wednesday',
'Friday',
'Saturday',
'Sunday',
];
var dayToday = 'Saturday'; // I'll be changing this to a more advanced method, getDay? When I've figured out how to post this correctly.
for (var i = 0; i < daysIWork.length; i++) {
console.log(daysIWork[i])
}; // This posts the array correctly, yay.
Здесь я застрял. Если я введу число, соответствующее номеру массива, то есть [1]
вместо [i]
, выписка будет отображаться true
. Однако с кодом ниже всегда получается false
.
if (dayToday === daysIWork[i]) {
alert ('Noooo, you work today!');
} else {
alert ("Yes, you don't work today!");
}
Я знаю, как заставить его работать с помощью вызова массива [1]
[2]
т.д., но я не могу заставить его прочитать весь массив и вернуться в true
.
Спасибо.
Где у вас есть 'if'? Он отлично работает при размещении в цикле: [jsfiddle] (http://jsfiddle.net/mayntsL2/) –
Перечитывая вопрос, который вы действительно хотите определить, если день 'dayToday' находится в' daysIWork' или нет. Таким образом, вы действительно будете использовать 'daysIWork.indexOf (dayToday)! == -1', чтобы проверить, находится ли он в массиве. Для IE 8 и до того, как вам понадобится использовать polyfill [MSN: Array.prototype.indexOf()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/ IndexOf # Polyfill). –
Хорошо, что работает, но он проходит через весь массив и проводку. IE мои 4 элемента, возвращает 3 false и 1 true, что имеет смысл в текущем коде. Однако я просто хочу, чтобы один верный и один ложный вернулся. Если dayToday и день в daysIWork соответствуют сообщению true, если не отправляют одно ложное предупреждение. – LoCoELF