Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从脚本创建数组,然后通知内容_Javascript_Arrays - Fatal编程技术网

Javascript 从脚本创建数组,然后通知内容

Javascript 从脚本创建数组,然后通知内容,javascript,arrays,Javascript,Arrays,我创建了一个脚本来创建一个名为spots的新数组,下面是脚本: main(); function main() { var doc = app.activeDocument; var selectedSwatches = doc.swatches.getSelected(); var pageNumber = 1; var count = 0; if (selectedSwatches.length > 0) { var text =

我创建了一个脚本来创建一个名为spots的新数组,下面是脚本:

main();
function main() {
    var doc = app.activeDocument;
    var selectedSwatches = doc.swatches.getSelected();
    var pageNumber = 1;
    var count = 0;
    if (selectedSwatches.length > 0) {
        var text = 'var spots = new Array(\n';
        for (var i = 0; i < selectedSwatches.length; i++) {
            var swatch = selectedSwatches[i]
            var color = swatch.color;
            // Spot
            if (color.typename == "SpotColor") {
                count++;
                text += '"' + color.spot.name + '", ' + "\n";
                color = color.spot.color;
                if (count % 10 == 0)
                    pageNumber++;
            }

        }
        var textend = ');';
        var textArray = text + textend;

        alert(textArray);
    } else {
        alert("No Swatches Selected.");
    }
}
我现在如何提醒该数组的内容,即黄色012 C,亮红色C

我试过使用:

alert(spots);
但是我得到了一个未定义的错误,可能是因为数组是动态创建的,而它没有放在脚本中

更新:

根据评论,我编辑了脚本,添加了:

var spots = [];
spots.push(color.spot)
alert(spots);
我现在得到以下错误:undefined不是对象

这是完整的脚本

main();
    function main() {
    var doc = app.activeDocument;
    var selectedSwatches = doc.swatches.getSelected();
    var pageNumber = 1;
    var count = 0;
    if (selectedSwatches.length > 0) {
        var text = 'var spots = new Array(\n';
        for (var i = 0; i < selectedSwatches.length; i++) {
            var swatch = selectedSwatches[i]
            var color = swatch.color;
            // Spot
            if (color.typename == "SpotColor") {
                count++;
                text += '"' + color.spot.name + '", ' + "\n";
                color = color.spot.color;
                if (count % 10 == 0)
                    pageNumber++;
            }

        }
        var textend = ');';
        var textArray = text + textend;
        var spots = [];
        spots.push(color.spot)
        alert(spots);
    } else {
        alert("No Swatches Selected.");
    }
}
main();
函数main(){
var doc=app.activeDocument;
var selectedSwatches=doc.swatches.getSelected();
var pageNumber=1;
var计数=0;
如果(selectedSwatches.length>0){
var text='var spots=新数组(\n';
对于(变量i=0;i
试试看

函数main(){
//var doc=app.activeDocument;
变量选择样本
=[{“color”:{“spot”:{“color”:“#ff0000”,“name”:“red”},“typename”:“SpotColor”}
,{“color”:{“spot”:{“color”:“#000000”,“name”:“black”},“typename”:“SpotColor”}];
//=doc.swatches.getSelected();
var pageNumber=1;
var计数=0;
var点=[];
如果(selectedSwatches.length>0){
对于(变量i=0;i

Main
您在声明Main()函数之前调用了它。尝试将main()放在函数下面block@elpmid这没关系,结果是一样的,因为您创建的是字符串,而不是数组。您应该使用
var-spots=[]然后使用
spots.push(color.spot.name)
。然后,
spots
将是一个实际数组。@DominiqueFortin没有名为
spots
@elpmid的变量,只要
main
函数声明在函数范围内,它就可以在调用之后运行,因为在javascript中,
函数和
var
被提升到函数范围。您的代码确实有效,但当将“selectedSwatches”替换为我自己的,因为我没有定义错误。您必须放置一个断点并查看
doc
doc.swatches的状态。我对Javascript不熟悉,这是什么意思?上面的脚本从adobe的样例创建数组。@juanman看。Firefox和Edge的原理是相同的。要访问DevTools,请右键单击页面,然后在关联菜单中单击
Inspect
main();
    function main() {
    var doc = app.activeDocument;
    var selectedSwatches = doc.swatches.getSelected();
    var pageNumber = 1;
    var count = 0;
    if (selectedSwatches.length > 0) {
        var text = 'var spots = new Array(\n';
        for (var i = 0; i < selectedSwatches.length; i++) {
            var swatch = selectedSwatches[i]
            var color = swatch.color;
            // Spot
            if (color.typename == "SpotColor") {
                count++;
                text += '"' + color.spot.name + '", ' + "\n";
                color = color.spot.color;
                if (count % 10 == 0)
                    pageNumber++;
            }

        }
        var textend = ');';
        var textArray = text + textend;
        var spots = [];
        spots.push(color.spot)
        alert(spots);
    } else {
        alert("No Swatches Selected.");
    }
}