0

我正在尝试操作具有 30,000 个页面项目的 Illustrator 文档中的某些页面项目。我试图避免遍历每一个。与此 AppleScript 等效的 Javascript 是什么?

set xxx to every page item whose note = "John"

第一页项目的注释值示例如下:

set xxx to (do javascript "app.activeDocument.pathItems[0].note")

最终,我只需要数组的计数(长度)。

在快速浏览了一个教程后,我将它拼凑成 Javascript 示例。这是获得结果的唯一方法吗?

docRef = app.activeDocument;

var pathLength = docRef.pathItems.length;

var hitList = []
for (i = 0; i<pathLength; i++)

{
if (docRef.pathItems[i].note= "John")
{
 hitList.push(i)   
}
}

alert(hitList.length)
4

1 回答 1

-1

有一种称为 Lambda 表达式的技术可以为您工作。您要查找的 Lambda 表达式类型是具有标准查询操作的 Lambda。基本上你要做的是拉回 docRef.pathItems[i].note= "John" 的项目列表

第一个链接将使您更好地了解 C# 中的 Lambda 表达式 http://msdn.microsoft.com/en-us/library/bb397687.aspx

第二个链接将指向您可以找到与 C# 非常相似的 Javascript lambda 表达式构建器的方向 JavaScript 中 是否有类似 C# 的 lambda 语法?

于 2014-09-25T23:31:19.270 回答