拼接JavaScript数组

时间:2015-01-25 04:09:11

标签: javascript jquery arrays splice

这是我尝试动态删除数组中的值

$('.btn-remove').click(function() {
    var players = ["compare","13076","13075","13077","12755"];
    var removePlayer = $(this).data('player');
    var idx = $.inArray(removePlayer, players);
    if (idx != -1) {
        players.splice(idx, 1);
    }
    window.location = "/" + players.join('/');
})

例如,$(this).data('player')可能等于 13077 ,我希望它从数组中删除该值,然后重定向到附加到{{1变量

1 个答案:

答案 0 :(得分:2)

此处的问题是.dataplayer数据字符串值转换为数字:

  

每次尝试都将字符串转换为JavaScript值(包括布尔值,数字,对象,数组和null)。如果这样做不会更改值的表示,则只会将值转换为数字... 字符串值" 100"被转换为数字100。

在您的示例中,您正在执行

$.inArray(13077, ["compare","13076","13075","13077","12755"]);

而不是

$.inArray("13077", ["compare","13076","13075","13077","12755"]);

您必须将数据值转换回字符串(例如removePlayer += "")或使用数字值而不是字符串填充数组。