首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义了"stringValues“,但从未使用”未使用的-vars“。

定义了"stringValues“,但从未使用”未使用的-vars“。
EN

Stack Overflow用户
提问于 2016-09-07 16:04:40
回答 1查看 1.2K关注 0票数 0

我对JS很陌生,我试图在另一个函数中调用一个函数。当我尝试它时,我得到的是皮棉错误。- stringValues在数字之间插入逗号以显示正确的格式,对于1000显示为1,000,对10000显示为10,000

代码语言:javascript
复制
 return Number(unitsOfNumbers.join('')).stringValues();
  • 提供下面的代码和错误。

错误:

代码语言:javascript
复制
"stringValues" is defined but never used  no-unused-vars

代码:

代码语言:javascript
复制
  import {differentCountriesCurrency} from 'sports-input-utils/lib/formatting';

    Object.defineProperty(exports, '__esModule', {
        value: true
    });
    exports.appleBrowser = appleBrowser;
    exports.appleBrowserWithDecimals = appleBrowserWithDecimals;


    function stringValues(x, sep, grp) {
        var sx = (''+x).split('.'), s = '', i, j;
        sep || (sep = ','); // default seperator
        grp || grp === 0 || (grp = 3); // default grouping
        i = sx[0].length;
        while (i > grp) {
            j = i - grp;
            s = sep + sx[0].slice(j, i) + s;
            i = j;
        }
        s = sx[0].slice(0, i) + s;
        sx[0] = s;
        return sx.join('.');
    }

    function appleBrowser(value, parm) {
        var unitsOfNumbers;
        if (!value) {
            return value;
        }

        // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
        unitsOfNumbers = value.match(/\d/g) || ['0'];
        return Number(unitsOfNumbers.join('')).stringValues();
    }

    function appleBrowserWithDecimals(value, parm) {
        var unitsOfNumbers;
        if (!value) {
            return value;
        }

        // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
        unitsOfNumbers = value.match(/\d/g) || ['0'];

        // zero-pad a one-digit input
        if (unitsOfNumbers.length === 1) {
            unitsOfNumbers.unshift('0');
        }

        // add a decimal point
        unitsOfNumbers.splice(unitsOfNumbers.length - 2, 0, '.');

        return Number(unitsOfNumbers.join('')).stringValues();
    }
    //# sourceMappingURL=formatting.js.map

    exports.limitMaximumLength = limitMaximumLength;
    function limitMaximumLength(value, parm) {
        if (value.length < parm) {
            return value;
        } else {
            return value.substring(0, parm);
        }
    }

    exports.differentCountriesCurrencyWithMaxLen = differentCountriesCurrencyWithMaxLen;
    function differentCountriesCurrencyWithMaxLen (value) {
        var isSafari;
        return differentCountriesCurrency(limitMaximumLength(value, 7));

        isSafari = navigator.userAgent.indexOf("Safari") > -1;
        if (isSafari) {
            return appleBrowser(limitMaximumLength(value, 7));
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2016-11-03 17:36:40

不担心其他的linting错误或检查任何关于逻辑的内容(还没有检查它是否做了您想做的事情),我可以这样删除no-unused-vars错误:

代码语言:javascript
复制
import {differentCountriesCurrency} from 'sports-input-utils/lib/formatting';

Object.defineProperty(exports, '__esModule', {
    value: true
});

function stringValues(x, sep, grp) {
    var sx = (''+x).split('.'), s = '', i, j;
    sep || (sep = ','); // default seperator
    grp || grp === 0 || (grp = 3); // default grouping
    i = sx[0].length;
    while (i > grp) {
        j = i - grp;
        s = sep + sx[0].slice(j, i) + s;
        i = j;
    }
    s = sx[0].slice(0, i) + s;
    sx[0] = s;
    return sx.join('.');
};

exports.appleBrowser = function (value, parm) {
    var unitsOfNumbers;
    if (!value) {
        return value;
    }

    // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
    unitsOfNumbers = value.match(/\d/g) || ['0'];
    return stringValues(Number(unitsOfNumbers.join('')));
};

exports.appleBrowserWithDecimals = function (value, parm) {
    var unitsOfNumbers;
    if (!value) {
        return value;
    }

    // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
    unitsOfNumbers = value.match(/\d/g) || ['0'];

    // zero-pad a one-digit input
    if (unitsOfNumbers.length === 1) {
        unitsOfNumbers.unshift('0');
    }

    // add a decimal point
    unitsOfNumbers.splice(unitsOfNumbers.length - 2, 0, '.');

    return stringValues(Number(unitsOfNumbers.join('')));
};

exports.limitMaximumLength = function (value, parm) {
    if (value.length < parm) {
        return value;
    } else {
        return value.substring(0, parm);
    }
};

exports.differentCountriesCurrencyWithMaxLen = function (value) {
    var isSafari;
    return differentCountriesCurrency(limitMaximumLength(value, 7)); 
    // ^^^ There's no way this ^^^ is what you want. 
    // The rest of the function is always ignored. You've already returned.

    isSafari = navigator.userAgent.indexOf("Safari") > -1;
    if (isSafari) {
        return appleBrowser(limitMaximumLength(value, 7));
    }
};

为了消除错误,我完全按照约瑟夫扬说的做了。您还没有将stringValues添加到任何数字返回。你在全球范围内宣布了。

所以不要这么做:

代码语言:javascript
复制
return Number(unitsOfNumbers.join('')).stringValues();

它假装有另一个stringValues作为Number返回值的函数属性。您的函数stringValues存在于全局范围内,并且从未被调用。

把你声明的东西叫做,你这样做:

代码语言:javascript
复制
return stringValues(Number(unitsOfNumbers.join('')));

一个重要的可读性问题需要注意:而不是像这样的行.

代码语言:javascript
复制
exports.limitMaximumLength = limitMaximumLength;
function limitMaximumLength(value, parm) {

..。把作业写在这样的单行上.

代码语言:javascript
复制
exports.limitMaximumLength = function (value, parm) {

这样就可以更容易地知道您正在导出什么以及什么是“私有”实用函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39374685

复制
相关文章

相似问题

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