Кажется, не соответствует выводу, который запрашивается (Verdana, а не VERDANA)

var arr = ['verdana', 'Verdana', 2, 4, 2, 8, 7, 3, 6];
result =  Array.from(new Set(arr));

console.log(arr);
console.log(result);

у удалить любые дубликаты без учета регистра, поэтому ожидаемый результат должен быть

[«Вердана», 2, 4, 8, 7, 3, 6]

но это не похоже на работу ...

 Igor Soloydenko14 окт. 2017 г., 06:59
определятьdoes not seem to work пожалуйста, потому что это работает для меня.
 Francesco14 окт. 2017 г., 07:00
это не удаляет Вердана

Ответы на вопрос(2)

Решение Вопроса

адобиться сначала очистить данные:

var arr = ['verdana', 'Verdana', 2, 4, 2, 8, 7, 3, 6]
  .map(x => typeof x === 'string' ? x.toLowerCase() : x);
result =  Array.from(new Set(arr));
// produces ["verdana", 2, 4, 8, 7, 3, 6];

В качестве альтернативы вы можете использоватьreduce() с пользовательской вложенной логикой сравнения. Реализация нижесравнивает предметы, игнорируя случай, но для "равных" строк он выбирает первое вхождение независимо от того, что это за "оболочка":

'verdana', 'Moma', 'MOMA', 'Verdana', 2, 4, 2, 8, 7, 3, 6]
  .reduce((result, element) => {
    var normalize = function(x) { return typeof x === 'string' ? x.toLowerCase() : x; };

    var normalizedElement = normalize(element);
    if (result.every(otherElement => normalize(otherElement) !== normalizedElement))
      result.push(element);

    return result;
  }, []);
// Produces ["verdana", "Moma", 2, 4, 8, 7, 3, 6]
 Igor Soloydenko14 окт. 2017 г., 07:09
@Francesco также, если ваш массив был['MoMa', 'MOMA', 'moma', 'moMA']Как можно догадаться, что останется в списке, а что исчезнет?
 Igor Soloydenko14 окт. 2017 г., 07:21
@Francesco смотрите мой обновленный ответ с примером кода для ситуации "MoMa". Надеюсь, это поможет.
 Igor Soloydenko14 окт. 2017 г., 07:07
@Франческо это намного сложнее. Я бы использовал что-то другое, а неSet, Нужно думать об этом. Идеально,Set должен получитьequality функции, но я дважды проверил с MDN - и не вижу ничего, что позволило бы нам настроитьSetПоведение
 Francesco14 окт. 2017 г., 07:02
здорово!!! Спасибо!
 Francesco14 окт. 2017 г., 07:03
но что если ... я хочу, чтобы у меня была одна запись типа "MoMa" ... и я не хочу делать ее строчной?

Set после преобразования строковых элементов вuppercase.Вот... оператор распространения

var arr = ['verdana', 'Verdana', 2, 4, 2, 8, 7, 3, 6];

var result = arr.map(function(item) {
  return typeof item === "string" ? item.toString().toUpperCase() : item
})

result = [...new Set(result)];

console.log(result);

 Andy01 дек. 2018 г., 01:32
Кажется, не соответствует выводу, который запрашивается (Verdana, а не VERDANA)
 Igor Soloydenko14 окт. 2017 г., 07:23
.toString() избыточно, если известно, чтоtypeof item === 'string'. Оператор спреда это навсегда!

Ваш ответ на вопрос