Фильтрующие массивы Applescript, использующие ObjectSpecifier, использующий Javascript
`В примечании к выпуску Javascript Automation от Apple есть пример поиска в массиве с произвольным objectSpecifier.
firstTabsName = ObjectSpecifier.tabs[0].name
app.windows.whose({_match: [firstTabsName, 'Apple']})
Однако первые строки выдают ошибку. "TypeError: undefined не является объектом (оценивает" ObjectSpecifier.tabs "). Что я делаю не так? Спасибо за вашу помощь!"
2 ответа
Первая строка взрывается в firstTabsName = ObjectSpecifier.tabs
, который возвращает missing value
, Ничто после этого не может быть успешным.
Похоже, что опубликованный вами код взят из заметок о выпуске Apple, в которых отсутствует пустой набор скобок сразу после "ObjectSpecifier" и еще один набор после оператора "чей". Когда вы добавляете эти парены, конструктор для ObjectSpecifier называется AND финалом, спецификатор которого разрешается в список соответствующих окон. Итак, исправленный код:
app = Application('Safari')
firstTabsName = ObjectSpecifier().tabs[0].name // added parens
app.windows.whose({_match: [firstTabsName, "Apple"]})() // added parens
// --> [Application("Safari").windows.byId(9016)]
mute = ObjectSpecifier().checkboxes["Mute"].value
mutedPersons = people.whose({_match:[mute,"Selected"]}