使用 javascript 从下拉列表中删除重复项

Removing duplicates from dropdown using javascript

我目前正在使用以下脚本从下拉菜单中删除重复项,但我现在需要尝试删除除 LAST 选项之外的所有重复项,以使搜索条件能够被 Solspace 的 Freeform 记住。

有没有比我聪明的人知道如何调整脚本以从最后一个脚本中删除所有重复的 APART?

// REMOVE DUPLICATES FROM LOCATION DROPDOWN
var optionValues =[];
$('#locationList option').each(function(){
   if($.inArray(this.value, optionValues) >-1){
      $(this).remove()
   }else{
      optionValues.push(this.value);
   }
});

提前致谢,

汤姆

不确定这是否是您要执行的操作:

var optionValues = [];
var optionItems  = $('locationList option');

optionItems.each(function (index) {
    if (index > optionItems.length - 1) {
        return;
    }
    if ($.inArray(this.value, optionValues) > -1) {
        $(this).remove();
    } else {
        optionValues.push(this.value);
    }
});
$(document).ready(function() {
  var optionValues = [];
  var lastRemoved = null;
  $('#locationList option').each(function(){
     if($.inArray(this.value, optionValues) >-1){
        $(this).remove();
        // remember the very last removed one
        lastRemoved = $(this);
     }else{
        optionValues.push(this.value);
     }
  });

  // after removing duplicates, add the very last removed one back to the list
  $('#locationList').append(lastRemoved);
});

假设我正确理解了您的问题,这将从列表中删除除最后一次出现的所有重复项。让我知道是否有帮助!