jQuery 动态创建多维数组

Aus*_*tin 5 javascript arrays jquery

我正在尝试使用 jQuery 创建以下我想要输出的示例数组:

[["foo0","foo1"],["foo2","foo3","foo4"],["foo5"]]
Run Code Online (Sandbox Code Playgroud)

我尝试使用的代码:

[["foo0","foo1"],["foo2","foo3","foo4"],["foo5"]]
Run Code Online (Sandbox Code Playgroud)
var counter = 0;
var arr = [];
$('.unknown-number-of-elements').each(function(){
    var keyNumber = $(this).val();
    var valToPush = "foo"+counter;
    if(keyNumber in arr){
      arr[keyNumber].push(["'"+ valToPush +"'"]);
    }else{
      arr[keyNumber] = valToPush;
    }
    counter++;
});
console.log(arr);
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了以下错误:

未捕获的类型错误:arr[keyNumber].push 不是函数

基本上,如果数组键已经存在,我想创建一个子数组并向该子数组添加值。

Ben*_*est 2

您永远不会创建子数组,您只将其放入valToPush一个数组中。

执行:arr[keyNumber] = [ valToPush ];创建一个包含您的第一个值的数组。

或者:

if ( !arr[ keyNumber ] ) {
    arr[ keyNumber ] = [];
}
arr[ keyNumber ].push( valToPush );
Run Code Online (Sandbox Code Playgroud)

  • 真的!还需要 `var keyNumber = parseInt( $(this).val() )` (2认同)