在Javascript中按属性筛选Illustrator页面项

时间:2012-08-10 01:58:02

标签: javascript adobe-illustrator

我正在尝试操作包含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)

1 个答案:

答案 0 :(得分:-1)

有一种称为Lambda表达式的技术可以为您服务。您要查找的Lambda表达式的类型是具有标准查询操作的Lambdas。基本上你要做的是撤回一个项目列表,其中docRef.pathItems [i] .note =&#34; John&#34;

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

第二个链接将指向您可以找到Javascript lambda表达式构建器的方向,就像C#一样 Is there a C#-like lambda syntax in JavaScript?