javascript迭代变量数组并将值重新分配给每个变量

时间:2010-06-17 09:56:49

标签: javascript jquery arrays

您应该如何迭代变量数组并将值重新分配给每个变量。例如,jQuery

function test(param1, param2) {

  $.each([param1, param2], function (i, v) {
     //check if all the input params have value, else assign the default value to it
     if (!v) 
         v = default_value; //this is wrong, can't use v, which is value
  }

}

我应该如何获取变量并在循环中分配新值?

非常感谢!


也许我没有清楚地描述我的问题。我的目的是迭代变量数组,而不是字符串数组。

var variable_1 = "hello";
var variable_2 = null;

我想迭代[variable_1,variable_2],并检查每个值,如果variable_2为null,那么我将默认值分配给variable_2以更改值。

3 个答案:

答案 0 :(得分:0)

只需使用JavaScript,您不需要jQuery:

var ​myarray = ['hello', null];​​
var i;
var default_value = 'default';

for (i = 0; i < myarray.length; i++) {
    if (! myarray[i]) {
        myarray[i] = default_value;
    }
}

alert(myarray);

答案 1 :(得分:0)

在函数范围中,您可以使用隐式变量arguments获取参数列表:

function foo(param1, param2, param3) {
   for(var i = 0; i < 3; i++) {
      if(typeof arguments[i] == 'undefined') {
         arguments[i] = 0;
      }
   }
}

http://jsfiddle.net/CTKRH/1/

答案 2 :(得分:0)

好吧,你可以这样做,但这只会改变数组内的值,而不是原来的var。

var defaultValue = 5;
var var1 = 1;
var var2 = 2;
var var3 = null;
var arr = [var1, var2, var3];

for(var i = 0, l = arr.length; i < l; i++) {
    if(!arr[i]) {
        arr[i] = defaultValue;
    }
}