Si je voulais regarder à travers mon calendrier OS X (anciennement "iCal") pour trouver des événements dont le résumé était "Déjeuner", je pourrais faire quelque chose comme ceci:Comparaisons/Requêtes riches en Javascript pour l'automatisation (JXA) "dont()"
var eventsContainer = Application('Calendar').calendars[0].events
for (var i = 0; i < eventsContainer.length; i++) {
var thisEvent = eventsContainer[i];
if (thisEvent.summary() == 'Lunch') { doSomething() }
}
même en tenant compte du fait que cette recherche seulement sur le premier calendrier, il est très, très, très lent, car chaque événement iCal doit être traduit à un objet Javascript pour fonctionner. Voici une formulation qui est beaucoup plus rapide:
var foundEvents = Application('Calendar').calendars.events.whose({summary: 'Lunch'});
Cela fonctionne très bien pour une correspondance exacte summary == 'Lunch'
. Mais qu'en est-il des comparaisons telles que endDate: > new Date()
ou summary: /lunch/i
? Est-il possible de passer le code natif (ObjC) dans un sélecteur de()? Existe-t-il des documents pour whose()
qui pourraient aider?
Cette question connexe: http://stackoverflow.com/questions/27072977/using-whose-on-arrays -in-javascript-for-automation consistait principalement à obtenir la forme simple de 'dont()' pour fonctionner dans l'implémentation initiale de JXA. Ce n'est pas un doublon Q. –