Javascript Uglify无法为嵌套if else工作

Javascript Uglify无法为嵌套if else工作,javascript,gruntjs,uglifyjs,grunt-contrib-uglify,Javascript,Gruntjs,Uglifyjs,Grunt Contrib Uglify,我使用grunt uglify来丑化我的代码虽然我使用grunt uglify来处理相同但相同的错误,但缩小代码效果很好,但当我计算代码时,它返回的错误为预期:。因为它不适用于嵌套的if-elsecase 示例代码。 $._ext_ILST = { changeColorLabel: function() { spots = app.documents[0].spots; var colorLabelArray = new Array();

我使用grunt uglify来丑化我的代码虽然我使用grunt uglify来处理相同但相同的错误,但缩小代码效果很好,但当我计算代码时,它返回的错误为
预期:
。因为它不适用于嵌套的
if-else
case

示例代码。

$._ext_ILST = {
    changeColorLabel: function() {
        spots = app.documents[0].spots;
        var colorLabelArray = new Array();
        for (var i = 0; i < spots.length; i++) {
            try {
                if (spots[i].toString() !== "[Spot]") {
                    if (spots[i].name.indexOf('$') == 0) {
                        colorLabelArray.push(spots[i].name.substring(1, spots[i].name.length));
                    }
                }
            } catch (e) {}
        }

        var colorInfo = getColorInfromation();
        var obj = {}
        if (colorInfo.length > 0)
            colorLabelArray = [];
        for (var i = 0; i < colorInfo.length; i++) {
            colorLabelArray.push(colorInfo[i].colorName);
            if ((colorInfo[i].hasOwnProperty('colorType') && colorInfo[i].colorType != "teamColorVariable")) {
                if (colorInfo[i].isGarmentColor) {
                    obj[colorInfo[i].colorName] = "G"
                } else {
                    obj[colorInfo[i].colorName] = "D"
                }
            } else if (!colorInfo[i].hasOwnProperty('colorType')) {
                if (colorInfo[i].isGarmentColor) {
                    obj[colorInfo[i].colorName] = "G"
                } else {
                    obj[colorInfo[i].colorName] = "D"
                }
            }
        }
        var mainColorObj = {
            colorLabelArray: colorLabelArray,
            colorMapArray: obj
        }
        return JSON.stringify(mainColorObj);
    }
}
$。\u ext\u ILST={
changeColorLabel:函数(){
spots=app.documents[0]。spots;
var colorLabelArray=新数组();
对于(变量i=0;i0)
彩色标签阵列=[];
对于(变量i=0;i
缩小输出-

$._ext_ILST = {
    changeColorLabel: function() {
        spots = app.documents[0].spots;
        for (var a = new Array, b = 0; b < spots.length; b++) try {
            "[Spot]" !== spots[b].toString() && 0 == spots[b].name.indexOf("$") && a.push(spots[b].name.substring(1, spots[b].name.length))
        } catch (c) {}
        var d = getColorInfromation(),
            e = {};
        d.length > 0 && (a = []);
        for (var b = 0; b < d.length; b++) a.push(d[b].colorName), d[b].hasOwnProperty("colorType") && "teamColorVariable" != d[b].colorType ? d[b].isGarmentColor ? e[d[b].colorName] = "G" : e[d[b].colorName] = "D" : d[b].hasOwnProperty("colorType") || (d[b].isGarmentColor ? e[d[b].colorName] = "G" : e[d[b].colorName] = "D");
        var f = {
            colorLabelArray: a,
            colorMapArray: e
        };
        return JSON.stringify(f)
    }
};
$。\u ext\u ILST={
changeColorLabel:函数(){
spots=app.documents[0]。spots;
对于(vara=newarray,b=0;b0&(a=[]);
对于(var b=0;b
任何帮助都将不胜感激

谢谢, 厄本德拉·森加

你应该这样做

以下是您的代码的后期(稍微修改)版本:

/* globals app, $, getColorInfromation */

(function(app, $, JSON, undefined) {
    $._ext_ILST = {
        changeColorLabel: function() {
            var spots = app.documents[0].spots;
            var colorLabelArray = [];
            var i;
            for (i = 0; i < spots.length; i++) {
                try {
                    if (spots[i].toString() !== "[Spot]") {
                        if (spots[i].name.indexOf('$') === 0) {
                            colorLabelArray.push(spots[i].name.substring(1, spots[i].name.length));
                        }
                    }
                } catch (e) {}
            }

            var colorInfo = getColorInfromation();
            var obj = {};
            if (colorInfo.length > 0)
                colorLabelArray = [];
            for (i = 0; i < colorInfo.length; i++) {
                colorLabelArray.push(colorInfo[i].colorName);
                if ((colorInfo[i].hasOwnProperty('colorType') && colorInfo[i].colorType != "teamColorVariable")) {
                    if (colorInfo[i].isGarmentColor) {
                        obj[colorInfo[i].colorName] = "G";
                    } else {
                        obj[colorInfo[i].colorName] = "D";
                    }
                } else if (!colorInfo[i].hasOwnProperty('colorType')) {
                    if (colorInfo[i].isGarmentColor) {
                        obj[colorInfo[i].colorName] = "G";
                    } else {
                        obj[colorInfo[i].colorName] = "D";
                    }
                }
            }
            var mainColorObj = {
                colorLabelArray: colorLabelArray,
                colorMapArray: obj
            };
            return JSON.stringify(mainColorObj);
        }
    };
}(app, $, JSON));
不确定这是否是您正在寻找的,和/或代码是否仍能正常工作,但希望这能让您找到正确的方向?

您应该这样做

以下是您的代码的后期(稍微修改)版本:

/* globals app, $, getColorInfromation */

(function(app, $, JSON, undefined) {
    $._ext_ILST = {
        changeColorLabel: function() {
            var spots = app.documents[0].spots;
            var colorLabelArray = [];
            var i;
            for (i = 0; i < spots.length; i++) {
                try {
                    if (spots[i].toString() !== "[Spot]") {
                        if (spots[i].name.indexOf('$') === 0) {
                            colorLabelArray.push(spots[i].name.substring(1, spots[i].name.length));
                        }
                    }
                } catch (e) {}
            }

            var colorInfo = getColorInfromation();
            var obj = {};
            if (colorInfo.length > 0)
                colorLabelArray = [];
            for (i = 0; i < colorInfo.length; i++) {
                colorLabelArray.push(colorInfo[i].colorName);
                if ((colorInfo[i].hasOwnProperty('colorType') && colorInfo[i].colorType != "teamColorVariable")) {
                    if (colorInfo[i].isGarmentColor) {
                        obj[colorInfo[i].colorName] = "G";
                    } else {
                        obj[colorInfo[i].colorName] = "D";
                    }
                } else if (!colorInfo[i].hasOwnProperty('colorType')) {
                    if (colorInfo[i].isGarmentColor) {
                        obj[colorInfo[i].colorName] = "G";
                    } else {
                        obj[colorInfo[i].colorName] = "D";
                    }
                }
            }
            var mainColorObj = {
                colorLabelArray: colorLabelArray,
                colorMapArray: obj
            };
            return JSON.stringify(mainColorObj);
        }
    };
}(app, $, JSON));
不确定这是否是您正在寻找的,和/或代码是否仍然有效,但希望这能让您找到正确的方向