2016-10-06 3 views
1

Я хотел бы написать простой скрипт для отображения поздравлений дня рождения и имени. Целью являетсяСоответствующие массивы со строками

1) Получить текущий день. 2) Храните данные в массиве. 3) Если какое-либо имя используемого имени соответствует переменной namede, то напишите в поздравлении документа. Обратите внимание, что в день, больше имен могут праздновать имена, тогда все сотрудники должны получать поздравление. 4) То же самое для дня рождения, больше людей может отпраздновать день рождения в тот же день. 5) Если имя/дата не совпадают с нашим списком сотрудников, ничего не делайте.

Я writed это

var today = new Date(); 
var dayMonth = new Date(); 
var day = today.getDate(); 
var month = today.getMonth()+1; 
var year = today.getFullYear(); 

today = day +'. '+ month+'. '+ year; 
dayMonth = day +'. '+ month+'.'; 

var employees = [ 
    ["Frank", "Jagger", "6. 10.", "1984"], 
    ["Ringo", "Lennon", "6. 10.", "1983"], 
    ["John", "Star", "4. 10", "1962"], 
    ["Mick", "Sinatra", "4. 10", "1961"] 
]; 


var nameday; 
var age = employees - year; 
var employeesName; 

switch (dayMonth) { 
    case"6. 10.": nameday = "Frank, Ringo, Steve"; break; 
    default: nameday = 0; 
} 


if (employees === nameday) { 
    document.write("' + employeesName + ' and ' + employeesName + ' nameday today. Congratulation!") 
} 

if (dayMonth === nameday) { 
    document.write("John Star is ' + age + ' tady and Mick Sinatra is ' + age + ' today. Congratulation!") 
} 

Я знаю, что конец кода не так, но как я могу получить нужные данные из массива? Как я могу получить доступ ко всем первым именам, а затем сопоставить их с массивом?

codepen http://codepen.io/anon/pen/rrpRmG?editors=0012

ответ

1

Я бы превратить ваш массив сотрудников в объект, который содержит массив сотрудников на каждый день.

Затем вы можете получить список сотрудников, у которых есть свой день рождения, получив опору даты на этом объекте!

Вот как это работает:

var employees = [ 
 
    ["Test", "Person", "7. 10.", "1234"], 
 
    ["Frank", "Jagger", "6. 10.", "1984"], 
 
    ["Ringo", "Lennon", "6. 10.", "1983"], 
 
    ["John", "Star", "4. 10", "1962"], 
 
    ["Mick", "Sinatra", "4. 10", "1961"] 
 
]; 
 

 
// Create birthday overview 
 
var birthdayOverview = employees.reduce(function(obj, employee) { 
 
    var birthday = employee[2]; 
 
    obj[birthday] = obj[birthday] || []; 
 
    obj[birthday].push(employee); 
 
    
 
    return obj; 
 
}, {}); 
 

 
// Find today's birthdays: 
 

 
var today = new Date(); 
 
var currentDay = today.getDate(); 
 
var currentMonth = today.getMonth() + 1; 
 
var currentDateFormatted = currentDay +'. '+ currentMonth+'.'; 
 

 
var birthdayToday = birthdayOverview[currentDateFormatted]; 
 

 
console.log(birthdayToday);

Смежные вопросы