子字符串的索引

JavaScriptJavaScriptBeginner
立即练习

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

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

简介

在本实验中,我们将探索JavaScript编程语言的基础知识。你将学习JavaScript的基本语法、数据类型、函数和控制结构。在实验结束时,你将能够使用JavaScript编写简单的程序,并对该语言有扎实的理解。本实验是为没有编程或JavaScript经验的初学者设计的。


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/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28389{{"子字符串的索引"}} javascript/data_types -.-> lab-28389{{"子字符串的索引"}} javascript/arith_ops -.-> lab-28389{{"子字符串的索引"}} javascript/comp_ops -.-> lab-28389{{"子字符串的索引"}} javascript/cond_stmts -.-> lab-28389{{"子字符串的索引"}} javascript/loops -.-> lab-28389{{"子字符串的索引"}} javascript/spread_rest -.-> lab-28389{{"子字符串的索引"}} end

子字符串的索引

要在给定字符串中找到子字符串的所有索引,请执行以下步骤:

  1. 打开终端/SSH并输入 node 以开始练习编码。
  2. 使用内置方法 Array.prototype.indexOf()str 中搜索 searchValue
  3. 如果找到该值,则使用 yield 返回索引并更新索引 i
  4. 使用 while 循环,一旦 Array.prototype.indexOf() 返回的值为 -1,就终止生成器。

以下是实现上述步骤的示例代码:

const indexOfSubstrings = function* (str, searchValue) {
  let i = 0;
  while (true) {
    const r = str.indexOf(searchValue, i);
    if (r !== -1) {
      yield r;
      i = r + 1;
    } else return;
  }
};

你可以使用以下代码测试该函数:

[...indexOfSubstrings("tiktok tok tok tik tok tik", "tik")]; // [0, 15, 23]
[...indexOfSubstrings("tutut tut tut", "tut")]; // [0, 2, 6, 10]
[...indexOfSubstrings("hello", "hi")]; // []

总结

恭喜你!你已经完成了“子字符串的索引”实验。你可以在LabEx中练习更多实验来提升你的技能。