将数组组分组为单独的子数组组[重复]

2024-02-10

我有一个带有字符串的 JS 数组,例如:

let a = ["a", "a", "a", "b", "c", "c", "b", "b", "b", "d", "d", "e", "e", "e"]

我需要比较数组内的重复字符串,如果存在重复字符串,它将像这样分隔:

[ ["a", "a", "a"], ["b"], ["c", "c"], ["b", "b", "b"], ["d", "d"], ["e", "e", "e"] ]

我试图将它与 for 循环进行比较,但我不知道如何编写代码,以便数组检查其自己的字符串是否有重复项,而无需预先确定的字符串进行比较。

let a = ["a", "a", "a", "b", "c", "c", "b", "b", "b", "d", "d", "e", "e", "e"];

let b = [];

let len = a.length;

for (let i = 0; i < len; i++) {
  if (b.indexOf(a[i]) !== 1) {
    b.push(a[i]);
  }
}

console.log(b)

如果你从数组中的第零个元素开始,你会得到[["a"]]然后,如果您从第一个元素进行迭代,只需检查它是否与前一个元素相同,您就可以确定是推送到现有的最后一个数组,还是开始一个新数组。

So use slice获取除第零个元素之外的数组forEach累积新数组:

let a = ["a", "a", "a", "b", "c", "c", "b", "b", "b", "d", "d", "e", "e", "e"]

var result = [[a[0]]]
a.slice(1).forEach( (e,i) => {
  if(e == a[i]) {
    result[result.length-1].push(e);
  } else{
    result.push([e]);
  }
});
console.log(result)

如果您还想跟踪计数,那就非常相似

let a = ["a", "a", "a", "b", "c", "c", "b", "b", "b", "d", "d", "e", "e", "e"]

var result = [{count:1, char:a[0]}]
a.slice(1).forEach( (e,i) => {
  if(e == a[i]) {
    result[result.length-1].count++;
  } else{
    result.push({count:1, char: e});
  }
});
console.log(result)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数组组分组为单独的子数组组[重复] 的相关文章

随机推荐

  • 与关注者|朋友用户的自引用关系

    为了建立用户之间的关系 创建了一个如下所示的表 sql CREATE TABLE friends from INT NOT NULL to INT NOT NULL UNIQUE INDEX from to 你可能知道 领域from and
  • 是否可以通过其他方式增加 google colab 中的内存?

    当我在 google colab 中运行此代码时 n 100000000 i while True i append n 10 66 这种事经常发生在我身上 我的数据量很大 在达到 12 72 GB RAM 后 但我没有立即看到崩溃提示和增
  • 如何使用spring boot制作通用库

    现在我想为我们的系统开发一个通用的邮件服务 当我们设计时 我们希望开发一个RabbitMQ生产者和消费者 在消费者方面 我们可以开发和部署Spring Boot or Spring Cloud应用程序 但在生产者方面 我们希望提供一个通用的
  • 如何使用 Code::Blocks 链接到库?

    C GUI 教程 对 TextOut 的未定义引用 https stackoverflow com questions 2180755 c gui tutorial undefined reference to textout 218078
  • boto3 upload_file 方法中支持对象级别标记

    我想在将文件上传到 S3 时为其添加标签 Boto3 支持使用 put object 方法指定标签 但是考虑到预期的文件大小 我使用 upload file 函数来处理分段上传 但此函数拒绝 标记 作为关键字参数 import boto3
  • JellyBean 中的 RecognitionListener 如果不立即对话就会冻结

    我正在开发的一个基于语音识别的应用程序可以在从 API 8 Android 2 2 开始的所有 Android 版本上运行良好 但在 Nexus S 4G Android 4 1 1 上 RecognitionListener 将简单地暂停
  • iPhone XR / XS / XS Max CSS 媒体查询

    用于定位 Apple 2018 设备 iPhone XR XS XS Max 的正确 CSS 媒体查询是什么 iPhone XR 1792x828px at 326ppi media only screen and device width
  • Warden 回调应该放置在 Rails 应用程序中的什么位置?

    我对 Rails 比较陌生 我已设置 Devise 并希望在用户登录后运行一些回调代码 看着典狱长维基页面 https github com hassox warden wiki Callbacks 我可以使用 after set user
  • 增加 Windows Mobile 5 模拟器存储

    我正在使用 Microsoft Sync Framework 将 SQL Server 数据库与 Windows Mobile 5 模拟器上的 SQL Compact SDF 文件同步 我们部署的实际设备中有一个 2 GB SD 卡 因此我
  • 在 post 方法中隐藏表单操作 url

    我下面有这段代码 我想将其插入新脚本中
  • Android 风格 Intent Activity

    如何根据口味创建活动意图 等级制度 main ActivityA flavor free uses main ActivityA flavor paid uses own paid ActivityA 那么如何根据当前的风味创建一个Inte
  • 检查 iPhone 中的网络可达性后应用程序崩溃?

    我有一个 mpmovieplayercontroller 来播放在线音乐和 avaudiosesion 在后台播放相同的音乐 当第一次应用程序在没有网络访问的情况下启动时 通常我显示 没有互联网连接 当我在连接到互联网并播放后尝试时显示错误
  • 如何创建具有视觉源安全的 diff 文件?

    如果我想用svn创建一个目录的补丁文件 我需要做的就是右键单击该目录 单击tortoiseSVN 然后单击创建补丁 我就有了一个很好的补丁文件 其中包含了最新版本的差异svn 上的代码和我机器上的代码 有没有办法构建隐藏在 VSS 中的 d
  • 从历史任务中获取表单密钥

    我们从任务服务获取表单密钥 就像下面的代码片段一样 for Task task getTaskService createTaskQuery taskCandidateGroupIn candidateGroup initializeFor
  • iMessage 扩展和应用内购买

    我正在尝试使用 InApp Purchase 功能创建 iMessage 扩展 基本上我创建了一个 iMessage 应用程序 它创建了两个目标 您的应用程序目标 消息扩展 并且每个都有它自己的包标识符 扩展名有 app 前缀 现在我正在尝
  • 如何创建具有动态“zero_state”的dynamic_rnn(推理失败)

    我一直在使用 dynamic rnn 来创建模型 该模型基于 80 个时间周期信号 我想在每次运行之前将 initial state 归零 因此我设置了以下代码片段来完成此操作 state cell L1 zero state self B
  • 使用 JavaScript/jQuery 下载文件

    我有一个非常相似的指定要求here https stackoverflow com questions 1296085 download file using jquery 我需要让用户的浏览器在以下情况下手动开始下载 a someID c
  • 自定义 shebang 的 VSCode 语法高亮显示

    在工作中 我们在自定义环境下运行 python 因此我们使用非标准的 shebang 我测试过VSCode可以识别python文件without py 扩展名 如果他们有 shebang usr bin env python or usr
  • 使用 vue.js 和 vuetify 进行服务器端表单验证

    我看到了很多有关使用 Vuetify 进行客户端验证的文档 但发现很难找到有关 vuetify 和 vue 的服务器端验证消息的文档 PROBLEM 我有这个组件
  • 将数组组分组为单独的子数组组[重复]

    这个问题在这里已经有答案了 我有一个带有字符串的 JS 数组 例如 let a a a a b c c b b b d d e e e 我需要比较数组内的重复字符串 如果存在重复字符串 它将像这样分隔 a a a b c c b b b d