2016-10-06 3 views
1

Ich möchte einfaches Skript für die Anzeige Geburtstag und Namenstag Herzlichen Glückwunsch schreiben. Das Ziel istPassende Arrays mit Strings

1) Erhalten Sie aktuellen Tag. 2) Speichern Sie die Mitarbeiterdaten im Array. 3) Wenn der Name eines Mitarbeiters mit dem Namenstag übereinstimmt, dann schreiben Sie an das Dokument gratulation. Beachten Sie, dass am Tag mehr Namen Namentage feiern können, dann müssen alle Mitarbeiter Glückwünsche erhalten. 4) Gleiches für Geburtstag, können mehr Leute Geburtstag am selben Tag feiern. 5) Wenn Name/Datum nicht mit unserer Mitarbeiterliste übereinstimmen, dann tun Sie nichts.

I writed dieses

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!") 
} 

Ich weiß, dass das Ende des Codes falsch ist, aber wie kann ich die richtigen Daten aus dem Array erhalten? Wie kann ich auf alle Vornamen zugreifen und sie dann mit Array abgleichen?

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

Antwort

1

ich Ihr Array von Mitarbeitern in ein Objekt verwandeln würde, die ein Array von Mitarbeitern für jeden Tag hält.

Dann können Sie eine Liste der Mitarbeiter, die Geburtstag haben, indem Sie das Datum Prop in diesem Objekt bekommen!

Hier ist, wie es funktioniert:

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);

Verwandte Themen