JavaScript 数组删除重复的单词或字符(如果只输入字符。不要从 1 个单词中删除所有重复项

Posted

技术标签:

【中文标题】JavaScript 数组删除重复的单词或字符(如果只输入字符。不要从 1 个单词中删除所有重复项【英文标题】:JavaScript Arrays delete duplicate words or characters(if only characters are entered. Not to delete from 1 word all duplicates 【发布时间】:2018-11-16 03:06:37 【问题描述】:

输入:Samsung,再输入:Samsung,再输入:Tomas,再输入:sass,再输入:sass,再输入:b,再输入:b,再输入:bb,再输入:bb.... ....

并显示以下内容: 使用 removeDuplicateUsingSet:Samsung、Tomas、sass、b、bb 无功能:Samsung,Samsung,Tomas,sass,sass,b,b,bb,bb 当你输入 stop 时循环停止.....

function removeDuplicateUsingSet(arr)
let unique_array = Array.from(new Set(arr))
return unique_array

var inputs =[];
var alreadyEntered = false;
while (!alreadyEntered) 

var input = prompt("Enter items until you enter it twice");

for (var i=0;i<inputs.length;i++) 
    if (inputs[i] == input)
     
        alert("Already entered!");
        alreadyEntered = true;
        break;
    


inputs.push(input);




alert("With removeDuplicateUsingSet function : " + "\n" + 
removeDuplicateUsingSet(inputs) + "\n" + "Without: " + "\n" + inputs);

现在这段代码有中断循环,我不知道如何修复它.... 接下来尝试做这件事:

function removeDuplicateUsingSet(arr)
let unique_array = Array.from(new Set(arr))
return unique_array


var array = [];
var stored = [];
while(array !== 'stop')

stored.push(prompt('what are your fav books ? '));
array = prompt('If you would like to continue enter any key otherwise enter or type stop');

// document.write(stored + " , ");
console.log(removeDuplicateUsingSet(array) + "\n___________");

alert("With removeDuplicateUsingSet function : " + "\n" + 
removeDuplicateUsingSet(array) + "\n" + "Without: " + "\n" + stored);

但也不是我想要的...... 它不断删除所有重复的字符(例如“三星”显示它SAMUNG,如果输入了2个相同的元素(项目),我想删除它 请帮我。 提前致谢。

【问题讨论】:

【参考方案1】:

这是你想要的输出吗?

function removeDuplicateUsingSet(arr) 
  let unique_array = Array.from(new Set(arr))
  return unique_array


var inputs = [];
while (true) 
  var input = prompt("Enter items until you enter it twice");
  if (input == 'stop') break;

  inputs.push(input);


alert("With removeDuplicateUsingSet function : " + "\n" + removeDuplicateUsingSet(inputs) +
  "\n" + "Without: " + "\n" + inputs);

【讨论】:

是的 :) 我会比较一下,看看我做错了什么:D 非常感谢 您仍然必须使用 while 进行用户输入。您做错的是:作为用户输入,您尝试立即比较数组。您已经拥有删除重复项的功能,因此您只需将输入推送到数组中即可。 是的我现在知道了

以上是关于JavaScript 数组删除重复的单词或字符(如果只输入字符。不要从 1 个单词中删除所有重复项的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串数组拆分为新的字符串数组并删除重复项

文本到字符串数组并删除重复项

删除字符和单词之间的空格[重复]

javascript常用单词整理

JavaScript 常用单词整理

仅用连字符替换单词之间的空格并删除所有其他空格[重复]