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

时间:2017-11-14 10:26:05

标签: 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 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

3 个答案:

答案 0 :(得分:1)

假设数组中的变量定义良好,您可以使用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]);
    } 
}

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

答案 1 :(得分:1)

首先,您的数组包含字符串作为常量,但不会起作用。

其次,如果你们所有人都是字符串,你可以按照以下方式进行:

&#13;
&#13;
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"];

var uniqueArray = data.filter(function(item, pos) {
    return data.indexOf(item) == pos;
})

alert(uniqueArray);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您可以创建一个独特的函数来删除数组中的重复条目和空值。

&#13;
&#13;
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"]   
var unique_data = uniqueList(data);
alert(unique_data);
function uniqueList(list) {
  var uniqueResult = [];
  $.each(list, function(i, e) {
    if ($.inArray(e, uniqueResult) == -1 &&$.inArray(e, uniqueResult)!="")// chech for unique value and empty value
      uniqueResult.push(e);
  });
  return uniqueResult ;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

相关问题