提升 JavaScript 编程技能

JavaScriptJavaScriptBeginner
立即练习

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

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

简介

在这个实验中,我们将深入探索 JavaScript 编程的世界,并致力于提升我们在这门语言上的技能。我们将进行各种练习和项目,以帮助我们理解这门语言的基础知识,包括变量、数据类型、函数和循环。在这个实验结束时,我们将在 JavaScript 编程方面拥有坚实的基础,并具备应对更复杂编程挑战的能力。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic 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") subgraph Lab Skills javascript/variables -.-> lab-28339{{"提升 JavaScript 编程技能"}} javascript/data_types -.-> lab-28339{{"提升 JavaScript 编程技能"}} javascript/arith_ops -.-> lab-28339{{"提升 JavaScript 编程技能"}} javascript/comp_ops -.-> lab-28339{{"提升 JavaScript 编程技能"}} javascript/array_methods -.-> lab-28339{{"提升 JavaScript 编程技能"}} end

在有序数组中查找插入索引的函数

要在数组中找到插入某个值并保持其排序顺序的最低索引,可以在 JavaScript 中使用函数 sortedIndexBy(arr, n, fn)

此函数会大致检查数组是否按降序排序,然后使用 Array.prototype.findIndex() 根据迭代器函数 fn 找到合适的索引。

以下是 sortedIndexBy() 函数的代码:

const sortedIndexBy = (arr, n, fn) => {
  const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
  const val = fn(n);
  const index = arr.findIndex((el) =>
    isDescending ? val >= fn(el) : val <= fn(el)
  );
  return index === -1 ? arr.length : index;
};

你可以使用一个对象数组、要插入的值和一个迭代器函数来调用这个函数。

例如,sortedIndexBy([{ x: 4 }, { x: 5 }], { x: 4 }, o => o.x) 返回 0,这是 { x: 4 } 对象为了基于 x 属性保持排序顺序而应该插入的索引。

总结

恭喜你!你已经完成了基于函数在有序数组中查找插入索引的实验。你可以在 LabEx 中练习更多实验来提升你的技能。