相关疑难解决方法(0)

计算数组元素的出现次数/频率

在Javascript中,我试图获取一个初始数值值数组并计算其中的元素.理想情况下,结果将是两个新数组,第一个指定每个唯一元素,第二个包含每个元素出现的次数.但是,我愿意接受有关输出格式的建议.

例如,如果初始数组是:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Run Code Online (Sandbox Code Playgroud)

然后将创建两个新阵列.第一个将包含每个唯一元素的名称:

5, 2, 9, 4
Run Code Online (Sandbox Code Playgroud)

第二个将包含元素在初始数组中出现的次数:

3, 5, 1, 1
Run Code Online (Sandbox Code Playgroud)

因为数字5在初始数组中出现三次,所以数字2出现五次,9和4出现一次.

我经常搜索一个解决方案,但似乎没有任何工作,我自己尝试过的所有东西都变得荒谬复杂.任何帮助,将不胜感激!

谢谢 :)

javascript arrays element count

195
推荐指数
20
解决办法
31万
查看次数

获取数组中出现次数最多的元素

我正在寻找一种优雅的方法来确定哪个元素在JavaScript数组中出现次数最多(模式).

例如,在

['pear', 'apple', 'orange', 'apple']
Run Code Online (Sandbox Code Playgroud)

'apple'元素是最常见的元素.

javascript mode

71
推荐指数
8
解决办法
7万
查看次数

如何获取数组中出现次数最多的项(数字或字符串)?

我试图获取由 Dialogflow 聊天机器人使用完整代码构建的 javascript 数组中最常见的项目。但是,如果我可以显示数组,那么我尝试的函数似乎无法很好地找到最频繁的项目:

const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
var answers = [];

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
  console.log('Dialogflow Request body: ' + JSON.stringify(request.body));

  function welcome(agent) {
    agent.add(`Welcome to my agent!`);
  }

  function fallback(agent) {
    agent.add(`I didn't understand FULLFILMENT`);
    agent.add(`I'm sorry, can you try again? FULLFILMENT`);
  }

  function …
Run Code Online (Sandbox Code Playgroud)

javascript arrays frequency

5
推荐指数
1
解决办法
3606
查看次数

获取数组JavaScript中出现次数最多的元素

我有一个数组,希望得到最多出现的元素,

第一种情况

let arr1 = ['foo', 'foo', 'foo', 'bar', 'bar', 'bar', 'baz', 'baz']
let newArr = someFunc(arr1)
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,我希望新数组具有该值

console.log(newArr) // ['foo', 'bar'] 
Run Code Online (Sandbox Code Playgroud)

因为值'foo'和'bar'是数组中最常出现的元素

第二种情况

 let arr2 = ['foo', 'foo', 'foo', 'bar', 'baz']
 let newArr = someFunc(arr2)
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,我希望新数组具有该值

console.log(newArr) // ['foo']
Run Code Online (Sandbox Code Playgroud)

因为值'foo'是数组中最常出现的元素

这是我尝试过的方法,即使有多个元素出现相同的时间,也只会让我获得其中一个元素

newArr= arr.sort((a,b) =>
arr.filter(v => v===a).length
- arr.filter(v => v===b).length
).pop()
Run Code Online (Sandbox Code Playgroud)

javascript arrays frequency

2
推荐指数
1
解决办法
1261
查看次数

数组中出现次数最多或第一个选择

我试图获得数组值的最高出现次数,如果出现次数相等,我应该获得相同出现次数的第一个选定值。

例子:

var array = ['25', '50', 'a', 'a', 'b', 'c']

在这种情况下,我应该得到 a

var array = ['75', '100', 'a', 'b', 'b', 'a']

在这种情况下,我也应该得到 a

我已经完成了相当多的搜索,并找到了一些有用的帖子,例如:

不知何故,我似乎无法修改这些示例以适合我的情况。

现在我正在使用下面的代码,但它返回最后一个选择的相等事件,而不是第一个。(信用/sf/users/86684111/

function mostFrequent(array){
  return array.sort(function(a,b){
    return array.filter(function(v){ return v===a }).length
      - array.filter(function(v){ return v===b }).length
  }).pop();
}
Run Code Online (Sandbox Code Playgroud)

欢迎对此提供任何帮助。

javascript jquery

1
推荐指数
1
解决办法
1169
查看次数

标签 统计

javascript ×5

arrays ×3

frequency ×2

count ×1

element ×1

jquery ×1

mode ×1