【问题标题】:MacOS Contacts details using JavaScript vs AppleScript使用 JavaScript 与 AppleScript 的 MacOS 联系人详细信息
【发布时间】:2019-03-06 00:42:21
【问题描述】:

我正在尝试在 Apple 的 Contacts.app 中获取所选卡片的所有电子邮件地址。在任何一种语言中,我都可以将选定的卡片放入变量 selPerson。但是后来……

在 AppleScript 中这是有效的:

get the properties of every email of selPerson

result 是一个记录列表(每个存储的电子邮件地址一个),具有多个属性,例如 id、label(如应用程序中所示)和 value(实际地址)。很简单。

但是我怎样才能在 JavaScript 中实现相同的结果呢?

selPerson.emails()

返回一组电子邮件“参考”和

selPerson.emails()[0].properties()

给我一个对象,其中包含数组中第一个对象的属性。但是我无法理解如何将它们组合起来以生成所有电子邮件对象的数组,即每个电子邮件地址一个。

我最终使用array.map() 将其混杂在一起,但这只是遍历第一个电子邮件参考数组。并创建第二个完整对象数组,但必须有更好的方法来做到这一点。似乎在 AppleScript 中它更容易的一种情况,尽管 AS 的其他功能意味着这样做是 JS 是一个更好的选择。无论如何,我想更多地了解 JXA。

【问题讨论】:

    标签: javascript-automation


    【解决方案1】:

    大概是这样的:

    const
        person = matches.at(0),
        emails = person.emails;
    
    return Array.from({
        length: emails.length
    }, (_, i) => emails.at(i).properties());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      相关资源
      最近更新 更多