在javascript

时间:2015-06-03 17:14:54

标签: javascript jquery

我正在使用jQuery:

 $(function() {
    var $used_social_medias = [];

    $('.social_medias input').click(function() {
        var $data_icon = $(this).attr('data-icon'); //

        console.log($data_icon);

        if($(this).is(':checked')) {
            eval('$used_social_medias['+$data_icon+']='+$data_icon);

            console.log($used_social_medias);
        } else {
            eval('delete $used_social_medias['+$data_icon+']');

            console.log($used_social_medias);
        }
    });
})

eval('$used_social_medias['+$data_icon+']='+$data_icon); AND eval('delete $used_social_medias['+$data_icon+']');无效..

如何使用动态变量声明数组?

3 个答案:

答案 0 :(得分:2)

您不需要eval,请将其删除。

要向数组添加元素,请使用.push()方法:

$used_social_medias.push($data_icon);

要删除元素,请使用.splice()

$used_social_medias.splice($used_social_medias.indexOf($data_icon), 1)

答案 1 :(得分:0)

你可以试试这个:

if($(this).is(':checked')) {
   $used_social_medias.push($data_icon);
   console.log($used_social_medias);
} else {
   $used_social_medias.splice($used_social_medias.indexOf($data_icon), 1);
   console.log($used_social_medias);
}

答案 2 :(得分:0)

尝试这样的事情:

var data = "testVariable";
eval("var temp_" + data + "= new Array();");
temp_testVariable[temp_testVariable.length]="Hello World";
alert("Array Length: " + temp_testVariable.length);
alert("Array Data: " + temp_testVariable[0]);