我有一个函数可以从HTML中的数据属性中获取唯一编号。就我而言,它被称为数据密钥,它将具有唯一的编号。
现在,当单击具有数据键的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);
});
答案 0 :(得分:8)
应该是注释,但在推送函数调用之前放置一个控制语句
if (deletedArray.indexOf(key) < 0) deletedArray.push(key);
对于浏览器兼容性jQuery&#39; inArray
if ($.inArray(key, deletedArray) < 0) deletedArray.push(key);
注意:indexOf
与IE 8及更早版本
答案 1 :(得分:0)
如果数组中的所有元素必须是唯一的,那么我真的建议使用Underscore的数组联合:
arr = ["1", 2, "apple"];
console.log(_.union(arr, 3)); //["1", 2, "apple", 3]
console.log(_.union(arr, 2)); //["1", 2, "apple"]