2015-02-14 4 views
0

Вот вопрос для начинающих 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.

Спасибо.

+1

Где у вас есть 'if'? Он отлично работает при размещении в цикле: [jsfiddle] (http://jsfiddle.net/mayntsL2/) –

+0

Перечитывая вопрос, который вы действительно хотите определить, если день '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). –

+0

Хорошо, что работает, но он проходит через весь массив и проводку. IE мои 4 элемента, возвращает 3 false и 1 true, что имеет смысл в текущем коде. Однако я просто хочу, чтобы один верный и один ложный вернулся. Если dayToday и день в daysIWork соответствуют сообщению true, если не отправляют одно ложное предупреждение. – LoCoELF

ответ

1

var daysIWork = [ 
 
     'Wednesday', 
 
     'Friday', 
 
     'Saturday', 
 
     'Sunday', 
 
    ]; 
 

 
    var dayToday = 'Saturday'; 
 

 

 
    if (daysIWork.indexOf(dayToday) > 0) { 
 
     console.log('boo'); 
 
    } else { 
 
     console.log('yay') 
 
    }