Удаление повторяющихся значений из массива элементов путем вызова функции

#javascript #arrays #duplicates

#javascript #массивы #дубликаты

Вопрос:

Я хочу, чтобы следующая функция при вызове возвращала массив элементов без дубликатов

 const removeDuplicates = nums => {
 var result = Array.from(new Set(nums));
  console.log(result)   
}
removeDuplicates([1,1,2,2,3])
  

В принципе, я хочу, чтобы эта функция работала без console.log
но с ее вызовом, вот так removeDuplicates([1,1,2,2,3])
Пожалуйста, обратите внимание, что return в этом случае не работает, поскольку это останавливает вызов функции.

PS Я прочитал много ответов, связанных с моим вопросом, однако они конкретно не отвечают на мой вопрос; в частности, я хочу вызвать removeDuplicates функцию с предоставленным массивом элементов, например так: removeDuplicates([1,1,2,2,3]) и я ожидаю, что она вернет элементы без дубликатов.

Комментарии:

1. Почему return Array.from(new Set(nums)) это не вариант?

2. просто верните Array.from…

3. Да, спасибо, repl, на котором я пробовал код, не работал, я думаю, потому что я решил создать JS / HTML / CSS repl вместо просто Javascript

4. При этом repl может войти в консоль или сделать что-то в dom с результатами. Скрипт запущен, вы просто ничего не делаете с результатами

Ответ №1:

Я ожидаю, что она вернет элементы

Итак, добавьте return

 const removeDuplicates = nums => {
  return Array.from(new Set(nums));
}

const res = removeDuplicates([1, 1, 2, 2, 3])

console.log(res)  

Или используйте неявный возврат

 const removeDuplicates = nums => Array.from(new Set(nums));
  

Комментарии:

1. Да, это очень логично / правильно; однако это не работает, я пробую это на repl, вот ссылка: repl.it/@umbur/FaintSlushyModel

2. Я не вижу, чтобы вы что-то делали с res в repl

3. Код, который вы предоставили, находится в script.js этого repl; однако он отлично работает на этом repl, который был создан путем выбора только JS: repl.it/@umbur/HotSerpentineProcedurallanguage

4. Понять … добавьте это и запустите снова document.body.innerHTML = JSON.stringify(res) , и если вы войдете в консоль, консоль repl будет работать

5. Не работает, но я думаю, это не важно, так как проблема решена сейчас; еще раз спасибо!