找出数组元素在javascript中出现多少次,然后由大变小

时间:2018-09-12 19:47:35

标签: javascript arrays

作为对这个问题的参考,想法是相同的

Get all non-unique values (i.e.: duplicate/more than one occurrence) in an array

但是

而不是删除重复项,我希望它们显示给应用程序

numArr=["hi", "apple", "window", "hi", "go", "window", "phone", "go", "hi", "down", "hi"];

起初,我只是想知道要查找的重复函数是什么,我认为对于python来说,我所穿的并不难,但似乎难于使用javascript,另外我说我会尝试在google上找到做我想做的事,但是每个代码都比另一个代码难,所以在问这里之前,我得到一个受欢迎的问题,我在上面提供了我刚刚检查的链接,但是每个代码都比另一个难,所以当时我决定在这里问你

及其结果如下所示

“嗨”,“书”,“目标”出现了4次

“窗口”,“门”,“铅笔”,“扬声器”出现2次

或者我说每个(出现四次的数字)都组成一个新数组 看起来很简单,如果按数字显示或按从a-z的顺序显示

请注意: -当我献给任何人时,他都能说出自己的话,并看到最终结果 -我希望代码按从大到小的顺序显示 -代码或函数必须甚至接受数组中等于或大于百万的单词 -甚至还有另一个单词显示相同次数显示它们。

1 个答案:

答案 0 :(得分:0)

我将为您提供所需的逻辑,并请您认真研究如何编写代码。正如其他几个人提到的那样,我们不会为您做这件事,但是很高兴看到我是否可以教您如何做。

首先,创建一个二维数组(我将其称为myResult)。第一维将包含numArr数组中的每个不同值。第二个维度将包含该值在您的数组中出现的总时间。

现在,使用for循环来迭代您的数组(意味着从头到尾遍历整个数组)。每次您遍历循环时,请执行以下操作:

  1. myResult中查找当前数组元素的值(使用findIndex(),以便获得其所在位置的索引)。
  2. 如果找不到它,请将其添加到数组中(使用push())。然后,将第二维的值更改为1。
  3. 如果确实找到它,只需在第二维的值上加上1(第一维的索引将是使用findIndex找到的索引,而第二维的索引将始终为零-您是永远不要每个数组的值都有一个以上的总值。

完成所有操作后,您可以迭代myResult数组并打印结果(使用console.log()开始;一旦按需要运行,就可以将其打印在哪里您想要的。)

我建议您阅读并熟悉我推荐的方法,并查看是否可以提出解决方案。如有任何疑问,请在评论中提问。 w3schools.com是一个很好的起点。