再回来问一个JavaScipt / JXA问题。我正在尝试注册来自我使用JXA调用的应用程序的响应。我正在尝试注册值app.toDos.byId("HQebK1em72yZqc3WqTmyzx")。当我踢开下面的脚本时:
var TaskApp = Application('Things3')
var toDo = TaskApp.ToDo({
name: "A new task",
notes: "notes"
})
var newTask = TaskApp.toDos.push(toDo)
console.log("Task " + newTask)我在回复字段中得到了以下输出:
app = Application("Things")
Application("Things").toDos.push(app.ToDo({"name":"A new task", "notes":"notes"}))
--> app.toDos.byId("HQebK1em72yZqc3WqTmyzx")
Application("Things").toDos.length
--> 3502
/* Task 3502 */
Result:
undefined在编辑器中如下所示:

值newTask似乎被返回数组长度的.push方法覆盖了。我可以以某种方式注册或返回应用程序返回的新任务ID吗?
发布于 2021-09-17 18:10:42
这是意料之中的:push是always returns the array length的JavaScript标准库方法。只需执行以下操作:
var TaskApp = Application('Things3')
var toDo = TaskApp.ToDo({
name: "A new task",
notes: "notes"
})
TaskApp.toDos.push(toDo)
console.log("Task " + toDo.id())https://stackoverflow.com/questions/69206038
复制相似问题