带条件的 Array.join()

2024-05-03

我该如何使用Array.join()有条件的函数

例如:

var name = ['','aa','','','bb'];
var s = name.join(', ');

输出是:', aa, , ,'bb',

我想添加一个条件,仅显示不为空的单词:"aa, bb"


您可以使用Array#filter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter从数组中删除空元素,然后使用Array#join https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join在过滤数组上。

arr.filter(Boolean).join(', ');

这里,回调函数为filter是布尔构造函数。这与

// ES5 equivalent
arr.filter(function(el) {
    return Boolean(el);
}).join(', ');

由于空字符串在 JavaScript 中是假的,Boolean('')将返回false并且该元素将从数组中跳过。过滤后的非空字符串数组通过胶水连接起来。

var arr = ['', 'aa', '', '', 'bb'];
var s = arr.filter(Boolean).join(', ');

console.log(s);

您还可以使用String#trim https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim从字符串中删除前导和尾随空格。

arr.filter(x => x.trim()).join(', ');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带条件的 Array.join() 的相关文章

随机推荐

  • Qml 中的 FileDialog 在发布中不起作用

    我正在与以下项目合作Qt Quick Control 2 当我尝试在调试模式下运行软件时 FileDialog qml 可以完美打开 但是当我将其部署为发布模式时 它无法工作 这是我的代码 import QtQuick 2 4 import
  • 在 PHP 中查找数字的倍数

    我想在 PHP 中找到一个数字的所有倍数 我正在使用这样的东西 if count 20 计算出如果 count不等于20 但我还需要这个脚本来检查是否 count不等于 20 40 60 80 100 120 140 160 等 有任何想法
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • “分页文件太小,无法完成此操作”尝试训练 YOLOv5 对象检测模型时出错

    我有大约 50000 个图像和注释文件用于训练 YOLOv5 对象检测模型 我在另一台计算机上仅使用 CPU 训练模型没有问题 但需要太长时间 因此我需要 GPU 训练 我的问题是 当我尝试使用 GPU 进行训练时 我不断收到此错误 OSE
  • 如何将 list 对象附加到另一个对象

    在 C 中 我有两个list
  • ConvertTo-JSON 具有单个项目的数组

    我正在尝试创建一个 JSON 序列化数组 当该数组仅包含一项时 我得到一个字符串 而不是字符串数组 JSON 格式 多个项目 按预期工作 PS C gt one two ConvertTo JSON one two 单个项目数组 不符合预期
  • 将 CryptoStream 解密为 MemoryStream

    我编写了一个过程 其中文件被加密并上传到 Azure 然后必须解密下载过程 这会失败并出现 填充无效且无法删除 错误 或 要解密的数据长度为无效的 错误 我在网上尝试了很多解决方案 包括C 使用 RijndaelManaged 和 Cryp
  • 批量删除如何工作?

    我尝试使用bulkDelete让我的机器人删除其消息 但我收到此错误 node 5724 UnhandledPromiseRejectionWarning Unhandled promise rejection rejection id 1
  • 无法使用 MinGW C++ 在 NetBeans IDE 7.3 中编译“Hello World”

    我正在尝试制作一个简单的 Hello World 在 NetBeans IDE 7 3 中使用 MinGW 作为我的 C 编译器来编写程序 我遇到了构建失败的情况 但我不知道为什么 这是我的编译器设置 Family MinGW 基本目录 C
  • JavaScript 排序列表

    Javascript 或 jQuery 中有排序列表吗 我有一个巨大的列表 随着时间的推移 插入操作很少 每次添加单个项目时 我无法为整个列表调用 object sort 我需要插入 o log n 不 没有 你拥有的只是Array sor
  • 将多个参数传递给 UNIX shell 脚本

    我有以下 bash shell 脚本 理想情况下我会用它来按名称杀死多个进程 bin bash kill ps A grep awk print 1 然而 虽然此脚本有效 但传递了一个参数 端镀铬 脚本名称为end 如果传递多个参数 则它不
  • 以 ASCII 字符串形式获取 MemoryStream 内容的快速方法

    我在 MemoryStream 中有一个 JSON 字符串 我使用以下代码将其作为 ASCII 字符串获取 MemoryStream memstream new MemoryStream Write a JSON string to mem
  • 更改 IIS 主目录路径会触发重新启动吗?

    在 IIS 特别是 6 0 中 在主目录选项卡下 如果我更改本地路径 是否会导致 IIS 重新启动或应用程序池回收 相关的 是否有一个参考概述了 IIS 元数据库的哪些更改将触发重新启动或应用程序池回收 我还没找到这个 更改主目录路径中网站
  • 为什么 Swift UITableViewController 模板在 tableView cellForRowAtIndexPath 方法中使用可选参数?

    如果您创建新的 UITableViewController 类 您将看到重写的注释方法 override func tableView tableView UITableView cellForRowAtIndexPath indexPat
  • EWS 消息跟踪报告

    我一直在研究如何使用 EWS 从交换中获取消息跟踪报告 但似乎无法查明任何内容 我打算构建一个抓取日志文件的应用程序 但如果我可以通过 EWS 来完成它 那对我正在做的事情会更好 有任何想法吗 我终于能够为我的问题创建一个解决方案 我在 C
  • 跨线反映点的算法

    给定一个点 x1 y1 和一条直线的方程 y mx c 我需要一些伪代码来确定反映直线上第一个点的点 x2 y2 花了大约一个小时试图弄清楚但没有运气 请参阅此处的可视化 http www analyzemath com Geometry
  • Emacs:调试Python的方法

    我把这个贴在程序员 stackexchange com https softwareengineering stackexchange com questions 29844 emacs methods for debugging pyth
  • NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?

    Nancy 通过以下方式将我的查询字符串和表单值传递给我的处理程序dynamic多变的 下面的示例显示了通过 Nancy 请求传递到 POST 处理程序的表单值 例如Request Form xxx Handler Post gt var
  • 我什么时候应该将可选值与 nil 进行比较?

    很多时候 您需要编写如下代码 if someOptional nil do something with the unwrapped someOptional e g someFunction someOptional 这似乎有点冗长 而且
  • 带条件的 Array.join()

    我该如何使用Array join 有条件的函数 例如 var name aa bb var s name join 输出是 aa bb 我想添加一个条件 仅显示不为空的单词 aa bb 您可以使用Array filter https dev