使用indexOf()组成一个唯一值数组

时间:2013-03-05 09:43:37

标签: javascript jquery indexof

我正在迭代XML。其中一个子元素是GroupName,它在XML字符串/文件中不是唯一的。因此,我试图在数组中放置 innertext 的不同(唯一)出现,如果你愿意的话,这些GroupName标签。

<GroupName></GroupName>
<GroupName></GroupName>
<GroupName>VIII</GroupName>
<GroupName>Date and signature</GroupName>
<GroupName>Date and signature</GroupName>
<GroupName>Date and signature</GroupName>
<GroupName>Date and signature</GroupName>
<GroupName>VII</GroupName>

在这种特殊情况下,GroupNames是[空字符串],'VII','VIII'和'日期和签名'。

当我使用jQuery提醒所有GroupNames时,会显示所有内容:

$xmlDoc.find('GroupName').each(function () {
    alert($(this).text();
});

但是,当我尝试使用indexOf()来组成一个唯一值数组时,其中一个似乎被跳过了!

$xmlDoc.find('GroupName').each(function () {
$groupName = ($(this).text().length == 0) ? 'empty' : $(this).text();
    if (groupnames.indexOf($groupName) < 0) {
        groupnames.push($groupName);
    }
});

在这种情况下,我得到'空','八'和'日期和签名'。 “VII”不知何故丢失了,我无法弄清楚原因。

0 个答案:

没有答案