我有这段代码,可以生成一系列有关在任何Photoshop文档中设置指南的信息。
var guides = app.activeDocument.guides;// get the current doc's guides
var guideArray = [];
for (var g = 0; g < guides.length; g++){
guideArray.push( [guides[g].direction, guides[g].coordinate ]);// store the guide properties for later
}
prompt("title", guideArray);
然后提示输出:
Direction.VERTICAL,47 px,Direction.VERTICAL,240 px,Direction.VERTICAL,182 px,Direction.VERTICAL,351 px,Direction.VERTICAL,119 px,Direction.VERTICAL,21 px,Direction.HORIZONTAL,89 px,Direction.HORIZONTAL,199 px,Direction.HORIZONTAL,54 px,Direction.HORIZONTAL,171 px
我想通过添加此代码来分割此数组
var b = [];
for (var i = 0; i < guideArray.length; i++){
var b = guideArray[i].split(",");
}
给了我这个错误,
exceptionMessage([错误:ReferenceError:guideArray [i] .split不是函数])
为什么?
忽略我正在做的事情(已经以更优雅的方式弄清楚了),我很想知道为什么会失败。
我很好奇,因为我试过这个并且它有效,
var guides = app.activeDocument.guides;// get the current doc's guides
var guideArray = [];
for (var g = 0; g < guides.length; g++){
guideArray.push( [guides[g].direction, guides[g].coordinate ]);// store the guide properties for later
}
var guideString = guideArray.toString();
var b = guideString.split("x,");
for (var i = 0; i < b.length; i++){
var c = b[i].split(",");
}
alert(c[1]);
这样可行,即使我在for循环中看起来与上面的分割看似相同。
答案 0 :(得分:0)
我认为第二位代码存在缺陷。它只有c [0]和c [1]的值。我想这可能是因为我没有把它定义为一个数组,而是在我的for循环中不断重新定义它。我不确定为什么0(Direction.VERTICAL)和1(47 px)有不同的值。
所以这是我对第一个问题的解决方法。我只需要在循环中添加方法.toString(),就像这样。
var guides = app.activeDocument.guides;// get the current doc's guides
var guideArray = [];
for (var g = 0; g < guides.length; g++){
guideArray.push( [guides[g].direction, guides[g].coordinate ]);// store the guide properties for later
}
var b = [];
for (var i = 0; i < guideArray.length; i++){
b[i] = guideArray[i].toString().split(",");
}
现在,数组b填充了预期的拆分结果。
我猜分裂是挑剔的,只能在不是数组元素的字符串上运行。