0

我有一个从 HTML 中的数据属性中获取唯一数字的函数。在我的情况下,它被称为 data-key ,它将有一个唯一的数字。

现在,当单击具有数据键的 HTML 元素旁边的按钮时,该键号将被推入一个数组。

我不希望将相同的数字多次放入数组中。

有没有一种简单的方法可以做到这一点?我想这样做的方式是在推送之前先检查该元素是否已经在数组中,但我觉得有更简单的方法?

我的 Codepen:http ://codepen.io/leongaban/pen/CEfxi

单击在此处输入图像描述按钮将输入值添加到数组中。

在此处输入图像描述 < 6-1 被添加两次

jQuery

var deletedArray = [];

$('.remove_info').unbind('click').bind("click", function(event) {
    //console.log('clicked remove x');
    var value = $(this).prev().attr('value');
    var key = $(this).prev().data('key');

    deletedArray.push(key);
    console.log('this value = '+value+' deletedArray = '+deletedArray);
});
4

2 回答 2

8

应该是评论,但在推送函数调用之前放置一个控制语句

  if (deletedArray.indexOf(key) < 0) deletedArray.push(key);

为了浏览器兼容性 jQuery 的inArray

  if ($.inArray(key, deletedArray) < 0) deletedArray.push(key);

注意:indexOf不兼容 IE 8 及更早版本

于 2013-10-09T17:25:54.847 回答
0

如果数组中的所有元素都必须是唯一的,那么我真的建议使用 Underscore 的数组联合:

arr = ["1", 2, "apple"];

console.log(_.union(arr, 3)); //["1", 2, "apple", 3]
console.log(_.union(arr, 2)); //["1", 2, "apple"]
于 2013-10-09T17:28:59.657 回答