将数组唯一值映射到对象键

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索如何创建一个对象,该对象以数组中的唯一值作为键,以这些值出现的频率作为值。我们将通过使用 Array.prototype.reduce() 方法来实现这一点,该方法将唯一值映射到对象的键,并在每次遇到相同值时将其添加到现有键中。通过本实验,我们将更深入地理解 reduce 方法,以及如何使用它来高效地解决编程问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/array_methods("`Array Methods`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("`Destructuring Assignment`") subgraph Lab Skills javascript/variables -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} javascript/data_types -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} javascript/arith_ops -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} javascript/comp_ops -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} javascript/array_methods -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} javascript/higher_funcs -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} javascript/destr_assign -.-> lab-28689{{"`将数组唯一值映射到对象键`"}} end

计算值频率的说明

要计算数组中值的频率,请遵循以下步骤:

  1. 打开终端/SSH 并输入 node 开始练习编码。
  2. 使用 Array.prototype.reduce() 方法将唯一值映射到对象的键,并在每次遇到相同值时将其添加到现有键中。这将创建一个以数组的唯一值作为键,以它们的频率作为值的对象。
  3. 此操作的代码如下:
const frequencies = (arr) =>
  arr.reduce((a, v) => {
    a[v] = a[v] ? a[v] + 1 : 1;
    return a;
  }, {});
  1. 要使用此函数,请将数组作为参数调用 frequencies。例如:
frequencies(["a", "b", "a", "c", "a", "a", "b"]); // { a: 4, b: 2, c: 1 }
frequencies([..."ball"]); // { b: 1, a: 1, l: 2 }

按照这些说明,你可以轻松计算任何给定数组中值的频率。

总结

恭喜你!你已经完成了值频率实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程