Javascript 尝试使用数组和哈希简化循环

Javascript 尝试使用数组和哈希简化循环,javascript,Javascript,鉴于此: var formItems = [ $("div.class1.class2:visible:eq(0) div.class3 input:eq(0)"), $("div.class1.class2:visible:eq(0) div.class3 input:eq(1)"), $("div.class1.class2:visible:eq(0) div.class3 input:eq(2)"), $("div.class1.class2:visible

鉴于此:

var formItems = [
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(0)"),
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(1)"),
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(2)"),
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(3)"),   
  ];
如果有任何方法可以简化此过程:

var values = getValues(); // values.length is always equal to formItem.length
for (var i = 0; i < values.length; i++) {
  if (someCondition()) {
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(0)").val(values[i].abc);
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(1)").val(values[i].cde);
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(2)").val(values[i].abcdf);
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(3)").val(values[i].zyz);

}
var values=getValues();//values.length始终等于formItem.length
对于(变量i=0;i
我不确定您想要什么,但可能是这样

var items = [
  { input: "div.class1.class2:visible:eq(0) div.class3 input:eq(0)", value: "abc" },
  { input: "div.class1.class2:visible:eq(0) div.class3 input:eq(1)", value: "cde" },
  { input: "div.class1.class2:visible:eq(0) div.class3 input:eq(2)", value: "abcdf" },
  { input: "div.class1.class2:visible:eq(0) div.class3 input:eq(3)", value: "zyz" }
];

var values = getValues();
for (var i = 0; i < values.length; i++) {
  if(this value is the right one) {
    for(var j in items) {
      $(item[j].input).val(values[i][items[j].value);
    }
  }
}
var项目=[
{输入:“div.class1.class2:visible:eq(0)div.class3输入:eq(0)”,值:“abc”},
{输入:“div.class1.class2:visible:eq(0)div.class3输入:eq(1)”,值:“cde”},
{输入:“div.class1.class2:visible:eq(0)div.class3输入:eq(2)”,值:“abcdf”},
{输入:“div.class1.class2:可见:eq(0)div.class3输入:eq(3)”,值:“zyz”}
];
var values=getValues();
对于(变量i=0;i
编辑13:15

如果这不是你所说的“简化”的意思,那么你必须详细说明

var formItems = [
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(0)"),
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(1)"),
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(2)"),
    $("div.class1.class2:visible:eq(0) div.class3 input:eq(3)"),   
  ];

var formValues = ["abc", "cde", "abcdf", "zyz"];

var values = getValues(); // values.length is always equal to formItem.length
for (var i = 0; i < values.length; i++) {
  if(this value is the right one) {
    for(var j in formItems) {
      formItems[j].val(values[i][formValues[j]);
    }
    break;
  }
}
var formItems=[
$(“div.class1.class2:visible:eq(0)div.class3输入:eq(0)”,
$(“div.class1.class2:visible:eq(0)div.class3输入:eq(1)”,
$(“div.class1.class2:visible:eq(0)div.class3输入:eq(2)”,
$(“div.class1.class2:visible:eq(0)div.class3输入:eq(3)”,
];
var formValues=[“abc”、“cde”、“abcdf”、“zyz”];
var values=getValues();//values.length始终等于formItem.length
对于(变量i=0;i
可能是,但我必须让formItems保持不变,因为它们在其他地方使用。我已经更改了解决方案。