为什么一些返回的数组在JXA(macOS中用于自动化的Javascript)中受到限制
我尝试通过JXA脚本从应用程序“消息”获取我的所有iMessage联系人。 当我将数组分配给变量时,我只能处理前40个对象。但是这个数组的长度是147为什么一些返回的数组在JXA(macOS中用于自动化的Javascript)中受到限制,javascript,arrays,javascript-automation,Javascript,Arrays,Javascript Automation,我尝试通过JXA脚本从应用程序“消息”获取我的所有iMessage联系人。 当我将数组分配给变量时,我只能处理前40个对象。但是这个数组的长度是147 var Messages = Application("Messages") var buddies = Messages.buddies() console.log(buddies.length) // == 147 当我转到脚本编辑器底部的“回复”选项卡时,我可以看到所有147个好友: app.buddies() --> [
var Messages = Application("Messages")
var buddies = Messages.buddies()
console.log(buddies.length) // == 147
当我转到脚本编辑器底部的“回复”选项卡时,我可以看到所有147个好友:
app.buddies()
--> [app.buddies.byId(...), ...]
但是当我尝试处理索引大于39的数组中的对象时,我得到一个错误-1728(未找到对象),例如
怎么了?
获取所有好友ID的正确方法是什么?当然,在
Messages.buddies()
(返回数组的函数调用),以及
消息。好友
(对buddies对象的引用)
通过直接在.buddies
对象上调用.id()
方法一次,您应该能够获得完整的id列表
(() => {
'use strict';
const
Messages = Application("Messages"),
refBs = Messages.buddies;
return refBs.id();
})();
就这样!非常感谢你!
(() => {
'use strict';
const
Messages = Application("Messages"),
refBs = Messages.buddies;
return refBs.id();
})();