Javascript 创建二维数组并在jquery中循环遍历它

Javascript 创建二维数组并在jquery中循环遍历它,javascript,jquery,arrays,Javascript,Jquery,Arrays,目标: 在javascript/jquery中创建二维数组 将数据推入其中 循环遍历每个键、值对 循环中的调用函数 代码: 使用对象 插入 var IDs = {}; $('#divDynamicFields').find("input").each(function () { IDs[this.id]= $(this).val(); }); 同样的循环 $.each(IDs , function (index, value) { alert( index + '

目标:

  • 在javascript/jquery中创建二维数组
  • 将数据推入其中
  • 循环遍历每个键、值对
  • 循环中的调用函数
  • 代码:

    使用对象 插入

    var IDs = {};
    $('#divDynamicFields').find("input").each(function () {     
       IDs[this.id]= $(this).val(); 
    }); 
    
    同样的循环

    $.each(IDs , function (index, value) {
        alert( index + ' : ' + value );
    });
    

    推送语法和迭代错误。你应该这样做:

    varids=[];
    id.push([1,2]);
    id.push([2,3]);
    /*循环遍历二维数组中的每个元素*/
    $。每个(ID、函数(键、值){
    警报(值);
    });
    
    整体思路是将数组推到由两个元素组成的数组,而不是两个元素:

    varids=[];
    $('#divDynamicFields input')。每个(函数()
    { 
    id.push([this.id,$(this.val()]);
    });
    对于(变量i=0;i
    您有几个问题

    第一个是必须将输入作为数组添加

           IDs.push([this.id, $(this).val()]); 
    
    第二个问题是,您希望调用刚刚添加在一起的ID,而不希望执行双循环

    $.each(IDs, function(key, value) { 
          CallFunction(value[0],value[1]);
    });
    
    这是一个例子:

    var IDs = [];
    /* Find Input elements and push its ID & Value into an array */
    $('#divDynamicFields').find("input").each(function () { 
       IDs.push([this.id, $(this).val()]); 
     }); 
    console.log(IDs); /* Now it prints string seprated by ',' */
    
     /* Loop Through Each element in 2D array */
    $.each(IDs, function(key, value) { 
           CallFunction(value[0],value[1]);
    });
    
    function CallFunction(id,val) {
       console.log(id+","+val);
    }
    

    varids=[];
    id.push([1,2]);
    id.push([2,3]);
    /*循环遍历二维数组中的每个元素*/
    $。每个(ID、函数(键、值){
    警报(值);
    });
    
    创建二维数组

    MultiArray = new Array(5)
    
    MultiArray [0] = new Array(2)
    
    MultiArray [0][0] = "Tom"
    
    MultiArray [0][1] = "scientist"
    
    MultiArray [1] = new Array(2)
    
    MultiArray [1][0] = "Beryl"
    
    MultiArray [1][1] = "engineer"
    

    您可以尝试使用以下方法在jquery中创建维度数组

    var IDs = [];
     $('#divDynamicFields').find("input").each(function () { 
         IDs.push({
            id: $(this).val()           
         });
    });
    
    console.log(IDs);
    

    这将允许您通过ajax在数组中发送所有您想要传递的数据。

    我在一维数组中看不到二维。所以我猜答案是否定的,这行不通。@Spokey我想创建一个2d数组,其中包含
    id,value
    作为pairtain查看一下。@Regent将其作为答案发布:)@Shaggy ok,因为它看起来很适合你:)什么是
    新闻
    obj
    obj[this.id]
    -应该是
    obj[this.id]
    ,不是吗
    $(“#divDynamicFields”)。使用“
    $”(“#divDynamicFields input”)
    @Regent查找(“输入”)
    会更好一些,它的键入错误bro,逻辑很重要。感谢正确的答案。是否有评论?答案是正确的吗?一个人可以理解打字错误,
    obj.[this.id]
    to=>
    IDs.[this.id]
    这很难吗?很难纠正答案中的所有打字错误和错误吗?答案应该是答案,而不是“查找并修复其中的所有错误和打字错误”。我不会对答案投反对票,因为我总是希望人们会纠正它们。我的回答是“复仇”很奇怪,你不这么认为吗?再说一次:它必须是
    IDs[this.id]
    ,而不是
    IDs。[this.id]
    。如果答案正确,您可以执行+1。现在它是正确的,对未来的用户有好处。
    MultiArray = new Array(5)
    
    MultiArray [0] = new Array(2)
    
    MultiArray [0][0] = "Tom"
    
    MultiArray [0][1] = "scientist"
    
    MultiArray [1] = new Array(2)
    
    MultiArray [1][0] = "Beryl"
    
    MultiArray [1][1] = "engineer"
    
    var IDs = [];
     $('#divDynamicFields').find("input").each(function () { 
         IDs.push({
            id: $(this).val()           
         });
    });
    
    console.log(IDs);