可迭代对象转哈希

JavaScriptJavaScriptBeginner
立即练习

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

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

简介

在本实验中,我们将探索 JavaScript 中的「可迭代对象转哈希」方法。此方法可让我们将给定的可迭代对象(对象或数组)转换为值哈希,这对于以更高效的方式组织和访问数据很有用。我们将学习如何使用 Object.values()Array.prototype.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-28452{{"`可迭代对象转哈希`"}} javascript/data_types -.-> lab-28452{{"`可迭代对象转哈希`"}} javascript/arith_ops -.-> lab-28452{{"`可迭代对象转哈希`"}} javascript/comp_ops -.-> lab-28452{{"`可迭代对象转哈希`"}} javascript/array_methods -.-> lab-28452{{"`可迭代对象转哈希`"}} javascript/higher_funcs -.-> lab-28452{{"`可迭代对象转哈希`"}} javascript/destr_assign -.-> lab-28452{{"`可迭代对象转哈希`"}} end

将可迭代对象转换为哈希

要将可迭代对象(对象或数组)转换为哈希(键控数据存储),请执行以下步骤:

  1. 打开终端/SSH 并输入 node 以开始练习编码。
  2. 使用 Object.values() 获取可迭代对象的值。
  3. 使用 Array.prototype.reduce() 遍历这些值,并创建一个以引用值作为键的对象。
  4. 使用可迭代对象和一个可选的键参数调用 toHash 函数,以指定引用值。

以下是 JavaScript 中 toHash 函数的一个示例实现:

const toHash = (iterable, key) =>
  Object.values(iterable).reduce((acc, data, index) => {
    acc[!key ? index : data[key]] = data;
    return acc;
  }, {});

你可以使用不同的可迭代对象和键调用 toHash 函数,以创建不同的哈希。例如:

toHash([4, 3, 2, 1]); // { 0: 4, 1: 3, 2: 2, 3: 1 }
toHash([{ a: "label" }], "a"); // { label: { a: 'label' } }

总结

恭喜你!你已完成「可迭代对象转哈希」实验。你可以在 LabEx 中练习更多实验来提升你的技能。

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