javascript只获取函数内部的参数作为参数

标签 javascript

我知道当它在任何地方被调用时,我们可以在函数内部获取 javascript 中的所有参数。我们可以获得额外的参数,我们也没有问过。 但是我们可以只得到关于 javascript 函数的参数吗? 喜欢:

function a(a,b){
 console.log(arguments);
}

如果我们在某处调用函数 a a(1,2,3,4,5) 那么输出将像 [1,2,3,4,5]

但我只想要 [1,2] 因为我预计函数中只有两个参数?

我的条件是

    index: (req, res, next) => {
            var params =  ['batch_id', 'section_id', 'subject_id', 'term', 'assesment_id', 'assesment_type'];
            var _ = req._;
            req.utils.requestValidation([req,res,next], params,'query')
// But i dont want to send params like above always instead like below
 req.utils.requestValidation(arguments, params,'query')

它被调用的地方是

requestValidation: (data, options, param) => {
        if (!options) return;
        var _ = data[0]._ || data._;
        var rules = {};

        var data = {};
        var sanity = {};
        var elr = [validator.escape, validator.ltrim, validator.rtrim];
        options.map((item, index) => {
            rules[item] = 'required';
            sanity[item] = elr;
        });
        data[param] = sanity;
        if (typeof data != 'string') {
            sanitizer.setOptions(data);
            var data = sanitizer.sanitize(data[0], data[1], data[2],param);
            return data[0].validation.validate(rules, data[0][param]);
        }
        return data.validation.validate(rules, data[param]);
    },

最佳答案

如果您只需要两个参数,只需将arguments 削减为两项

如果你想要自动的,你可以写函数包装器,像这样:

function wrapperCutParams(func, paramsCount){
  return function(){
    var args = Array.prototype.slice(arguments, 0);
    if(args.length > paramsCount){
      args = args.slice(0, paramsCount)
    }
    func.apply(this, args)
  }
}

然后

var a = function a(a,b){
 console.log(arguments);
}

a = wrapperCutParams(a, 2)

或者只是

a = wrapperCutParams(function a(a,b){
     console.log(arguments);
    }, 2)

关于javascript只获取函数内部的参数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956425/

相关文章:

javascript - Node.js: puppeteer 焦点()函数

javascript - 如何在 JavaScript 中使用 for 循环创建字典?

javascript - bxSlider javascript 转义 ' 语法

javascript - 检测 console.log() 调用

javascript - Angular 4中不同变量的控制检测变化策略

javascript - 访问加载在 html head 标签中的 mustache 模板?

javascript - 为什么这两个事件处理程序中的上下文不同

javascript - Angular-js 过滤器查找空字符串

javascript - html窗口通过javascript打开关闭

javascript - 使用 jQuery 根据另一个元素的内容显示/隐藏 div