使用$ .each()传递给函数的清理变量

时间:2011-02-15 05:54:21

标签: javascript jquery function variables each

我有以下内容:

setup : function(first, middle, last) {

    // Clean input.
    $.each([first, middle, last], function(index, value) {

        ??? = value.replace(/[\W\s]+/g, '').toLowerCase();
    });

有没有办法可以让它发挥作用?我试图找出替代的内容而不是???(我已尝试thisindexthis[index],但似乎无法绕过我的脑袋指向原始变量。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

使用Arguments对象。

setup : function(first, middle, last) {
    var args = arguments;
    $.each(arguments, function(index, value) {
        args[index] = value.replace(/[\W\s]+/g, '').toLowerCase();
    });

示例: http://jsfiddle.net/EfHQ2/

答案 1 :(得分:1)

要修改数组,请改用$.map(),然后返回新值:

var clean = $.map([first, middle, last], function(value, index) {
    return value.replace(/[\W\s]+/g, '').toLowerCase();
});

更好的是,使用特殊的arguments对象(如Patrick's answer)代替构建临时数组:

var clean = $.map(arguments, function(value, index) {
    return value.replace(/[\W\s]+/g, '').toLowerCase();
});