如何使用javascript动态创建数组

Mar*_*hel 0 javascript arrays each jquery

我尝试的东西可能很容易但我似乎无法找出为什么它不起作用.我试图用jquery/javascript动态创建和数组.

我的代码;

var icons = $('.icon');

var desktopicons = [];

var user = { name: username };

var iconsetup = { myicons: [] };

desktopicons.push(user);
desktopicons.push(iconsetup);

$.each(icons, function() {
        var name = $(this).attr('name');
    var rel = $(this).attr('rel');


    var icon = { 
        icon: [{
            name: name,
            rel: rel
        }]
    };

    iconsetup.myicons[0].push(icon);

});

desktopicons.push(user);
desktopicons.push(iconsetup);

$('#desktop').append(desktopicons[0].name);
$('#desktop').append(desktopicons[1].myicons[0].icon[0].name);
Run Code Online (Sandbox Code Playgroud)

不知怎的,我的日志文件说不能调用'iconsetup.myicons [0] .push(icon);'上的undefined方法.这条线.

谁能告诉我如何创建阵列?谢谢!

Gab*_*oli 6

您正在使用myicons[0]这意味着您获得了第一项而myicons不是数组

使用

iconsetup.myicons.push(icon);
Run Code Online (Sandbox Code Playgroud)

你也可以简化整个.each()部分

iconsetup.myicons = icons.map(function(idx, item){
   return {icon:[{name: item.name, rel: item.rel}]}
}).get();
Run Code Online (Sandbox Code Playgroud)