Javascript 作为字符串返回的数组

Javascript 作为字符串返回的数组,javascript,arrays,string,adobe,extendscript,Javascript,Arrays,String,Adobe,Extendscript,在使用AdobeExtensionforAfterEffects进行实验时,我使用JSX与软件交互,并将信息发送到一个JS文件,该文件将更新HTMLUI面板 此时,我正在尝试console.log从软件返回的一些信息(组成和层名称) 我的问题是,我可以在JSX端使用的字符串数组,一旦在我的JS工作表中返回,就会作为字符串接收 以下是流程: main.js (function() { 'use strict'; var csInterface = new CSInterface();

在使用AdobeExtensionforAfterEffects进行实验时,我使用JSX与软件交互,并将信息发送到一个JS文件,该文件将更新HTMLUI面板

此时,我正在尝试
console.log
从软件返回的一些信息(组成和层名称)

我的问题是,我可以在JSX端使用的
字符串数组
,一旦在我的JS工作表中返回,就会作为
字符串
接收

以下是流程:

main.js

(function() {
  'use strict';
  var csInterface = new CSInterface();

  function init() {
    themeManager.init();

    $("#btn_test").click(function() {
      csInterface.evalScript('main()', function(res) {
        console.log(typeof(res));
        console.log(res);
      });
    });
  }
  init();
}());
hostscript.jsx

function main() {
  var project = app.project;
  var comp = project.activeItem;
  var layers = comp.selectedLayers;
  var layersNames = [];

  for (var i = 0; i < layers.length; i++) {
    layersNames.push(layers[i].name);
  }
  return layersNames;
}
函数main(){
var project=app.project;
var comp=project.activeItem;
变量层=复合选定层;
var layersNames=[];
对于(变量i=0;i
因此,在我的控制台中,我收到两个信息:

  • typeof是
    字符串
  • 日志记录资源为
    name1、name2

有什么想法吗?我在Stack Overflow或任何其他Adobe相关论坛上都找不到有针对性的答案。

return[layersNames]
将在另一个数组中返回您的数组。删除括号无效,它仍然作为字符串返回。您如何知道它是作为字符串返回的?哦,等等,我明白了。这可能与API的工作方式有关。据我所知,
evalScript()
希望脚本返回字符串。您可以对数组进行JSON编码,然后对其进行解码。