Javascript 如何使用jQuery作为数组获取多维输入字段数组

Javascript 如何使用jQuery作为数组获取多维输入字段数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,jQuery find()和children()给出所有匹配条件的数组。 这个数组是一维的。 但是我需要生成一个多维数组,以便在子容器中包含输入 只需要一点提示,我如何才能有效地实现这一点,而不是循环子对象并生成多维数组 $(文档).ready(函数(){ 变量输入=$('.container.box')。查找('input'); //变量输入=$('.container.box:input') 控制台日志(输入); /*这将导致以下结果:, [ 0:input.tag_名称 1:input.

jQuery find()和children()给出所有匹配条件的数组。 这个数组是一维的。 但是我需要生成一个多维数组,以便在子容器中包含输入

只需要一点提示,我如何才能有效地实现这一点,而不是循环子对象并生成多维数组

$(文档).ready(函数(){
变量输入=$('.container.box')。查找('input');
//变量输入=$('.container.box:input')
控制台日志(输入);
/*这将导致以下结果:,
[
0:input.tag_名称
1:input.tag_名称
2:input.tag_name
3:input.tag_名称
4:input.tag_name
]
但是我需要下面的嵌套数组
[
0:input.tag_名称
1:input.tag_名称
[
2:input.tag_name
[
3:input.tag_名称
]
]
4:input.tag_name
]
*/
});

使用函数递归尽可能深入地挖掘,以收集嵌套的输入元素并返回数组,从而维护嵌套结构:

$(document).ready(function () {
    function boxindexes(self) {
        var bi = [];
        bi.push(self.children('input')[0]);
        self.children('.box').each(function(){
            bi.push(boxindexes($(this)));
        });
        return bi;
    }
    var inputs = [];
    $('.container').children('.box').each(function() {
        inputs.push(boxindexes($(this)));
    });
    console.log( inputs );
});
产出:

[
  0: [0: input.tag_name],
  1: [
       0: input.tag_name,
       1: [
            0: input.tag_name,
            1: [0: input.tag_name]
          ]
     ],
  2: [0 input.tag_name]
]

你自己看:

我认为如果不操纵输入结果,你就无法做到这一点。你必须循环孩子们