删除JavaScript中由双逗号分隔的数组中的重复项

删除JavaScript中由双逗号分隔的数组中的重复项,javascript,jquery,arrays,Javascript,Jquery,Arrays,我在JavaScript中有一个数组,如下所示 var data = [,A_1_VII,VII,V2,,A_1_VII,VII,V2,,A_1_VII,VII,V2,,B_1_XIV,XIV,V3,,B_2_XVI,XVI,V3] 当我在JavaScript中发出警报时,它给出如下所示 ,A_1_VII,VII,V2 ,A_1_VII,VII,V2 ,A_1_VII,VII,V2 ,B_1_XIV,XIV,V3 ,B_2_XVI,XVI,V3 但我想这样,这是重复删除阵列 var un

我在JavaScript中有一个数组,如下所示

var data = [,A_1_VII,VII,V2,,A_1_VII,VII,V2,,A_1_VII,VII,V2,,B_1_XIV,XIV,V3,,B_2_XVI,XVI,V3]   
当我在JavaScript中发出警报时,它给出如下所示


,A_1_VII,VII,V2
,A_1_VII,VII,V2
,A_1_VII,VII,V2
,B_1_XIV,XIV,V3
,B_2_XVI,XVI,V3

但我想这样,这是重复删除阵列

var unique_data = [,A_1_VII,VII,V2,,B_1_XIV,XIV,V3,,B_2_XVI,XVI,V3]
警报中它应该这样发出

,A_1_VII,VII,V2
,B_1_XIV,XIV,V3

,B_2_XVI,XVI,V3

假设数组中的变量定义良好,您可以使用
for
循环清除并删除重复项:

var data [/* ... */];
var unique_data = [];

for(let i = 0; i < data.length; i++) {
    if (data[i] && unique_data.indexOf(data[i]) === -1) {
        unique_data.push(data[i]);
    } 
}
var数据[/*…*/];
var unique_data=[];
for(设i=0;i

请注意,上面的代码假设您的数组包含非对象类型,否则解决方案需要使用比
indexOf()

更复杂的方法。首先,您的数组将字符串作为常量包含,这是行不通的

其次,如果所有值都是字符串,则可以按如下方式执行:

var数据=[,“A_1_VII”,“VII”,“V2”,“A_1_VII”,“VII”,“V2”,“A_1_VII”,“VII”,“V2”,“B_1_XIV”,“XIV”,“V3”,“B_2_XVI”,“XVI”,“V3”];
var uniqueArray=data.filter(函数(项目、位置){
返回数据。indexOf(项目)==pos;
})

警报(唯一数组)您可以创建独特的函数,从数组中删除重复项和空值,如下所示

var数据=[,“A_1_VII,VII”,“V2”,“A_1_VII”,“VII”,“V2”,“A_1_VII”,“VII”,“V2”,“B_1_XIV,XIV”,“V3”,“B_2_XVI,XVI,V3”]
var unique_数据=唯一列表(数据);
警报(唯一_数据);
函数唯一列表(列表){
var uniqueResult=[];
$。每个(列表、函数(即){
if($.inArray(e,uniqueResult)=-1&&$.inArray(e,uniqueResult)!=“”)//检查唯一值和空值
唯一结果推送(e);
});
返回uniqueResult;
}

到目前为止,您尝试了什么?另外,您当前的JS示例将抛出一个错误。这是一个非常奇怪的javascript数组。这段代码是有效的javascript吗?@JasperSeinhorst是的,如果这些都是有效的变量。@DontVoteMeDown我怀疑变量名是否可以以逗号开头。@BojanIvanac:不,但是数组中可以有空条目,这就是数组所具有的。(这是从ES2015开始的。)例如:
[,,1,,,,,]
完全有效(在ES2015+中)。不是工人。我已经试过了。现在我又试了一次。但不起作用。@bioinform您是否将所有值都放在双引号中,因为上面的代码工作正常单击“运行代码段”