首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For循环在ExtendScript -.forEach(),而不是函数

For循环在ExtendScript -.forEach(),而不是函数
EN

Stack Overflow用户
提问于 2016-07-21 15:22:48
回答 4查看 3.4K关注 0票数 1

我在ExtendScript工作与桥,以附加标签从一个excel文档文档。我正在使用js库解析excel文档。我正在运行一个for循环来解析各个单元格并获取值,当我从命令行运行它时,它工作得很好。但是,当我在ExtendScript中运行它时,我会得到一个异常,键().forEach不是一个函数。ExtendScript是否出于某种原因而不同地读取for循环?我很难搞清楚这件事。这是给我带来麻烦的台词:

代码语言:javascript
复制
var range = {s:{c:0, r:0}, e:{c:1,r:30}};
for (var R = range.s.r; R <= range.e.r; ++R) {
  for (var C = range.s.c; C <= range.e.c; ++C) {
      var cell_address = xls.utils.encode_cell({c:C, r:R});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-05 21:13:37

Extendscript作为一种语言,只能停留在ECMAScript 3上--因此它本机不了解Object.keys(),也不知道Array.forEach()。甚至连JSON都没有。

对此的正式提及可在后效果脚本指南第3页中找到,其中说:

后效果脚本使用,这是多个ExtendScript应用程序使用的JavaScript的扩展形式,包括Photoshop、Illustrator和InDesign。ExtendScript按照ECMA-262规范实现了JavaScript语言.后置效果脚本引擎支持ECMA-262标准的第3版,包括它的符号和词汇约定、类型、对象、表达式和语句。ExtendScript还实现了E4X ECMA-357规范,该规范定义了对数据的访问。

在PS脚本指南中没有找到上面的内容,也没有参考。

如果您想使用ES5特性,可以包括shims,或者尝试扩展脚本。Extendscriptr是一个脚本社区项目(不涉及Adobe ),它应该允许您编写ES5/ES6代码,然后将其转换为ES3。

票数 3
EN

Stack Overflow用户

发布于 2016-07-21 19:39:29

我想出来了。该错误在文件中进一步下降。ExtendScript或我的版本不支持forEach循环,所以我不得不为forEach函数编写文件并导入它。

票数 1
EN

Stack Overflow用户

发布于 2022-06-15 00:08:14

下面是如何在ExtendScript中迭代字典(至少在事后效果中工作)

代码语言:javascript
复制
var my_dictionary = {};
my_dictionary['fruit'] = "apple";

iterate_through_dict(my_dictionary)

function iterate_through_dict(my_dictionary) {
    for (var i in my_dictionary) {
        alert(my_dictionary[i]);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38508213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档