首页 > 编程语言 >JavaScript 实现通过 id 数组获取可展示的 name 拼接字符串

JavaScript 实现通过 id 数组获取可展示的 name 拼接字符串

时间:2024-03-21 16:13:40浏览次数:26  
标签:map const name 对象 JavaScript 数组 id

JavaScript 实现通过 id 数组获取可展示的 name 拼接字符串

场景

有一个包含许多对象的数组,每个对象都包含了一个标识(id)和一个名称(name)。想要从这个数组中选出特定的一些对象,这些对象的标识(id)在另一个数组中已经给出。然后,想把这些选出来的对象的名称(name)连接成一个字符串,用逗号分隔起来,以便进一步处理或显示。

代码实现

实现方式一

可以使用 JavaScript 中的 Array 的 filter()map() 方法来实现这个功能。以下是一个示例代码:

// 假设你有一个包含 JSON 对象数组的变量
const jsonArray = [
  { id: 1, name: "John" },
  { id: 2, name: "Jane" },
  { id: 3, name: "Doe" },
];

// 假设你有一个 id 数组
const idArray = [1, 3];

// 使用 filter() 方法筛选出符合 id 数组中的 id 的对象,然后用 map() 方法获取对应的 name 属性
const filteredNames = jsonArray
  .filter((obj) => idArray.includes(obj.id))
  .map((obj) => obj.name);

// 使用 join() 方法将 name 组合成字符串,以 , 分隔
const result = filteredNames.join(", ");

// 输出结果
console.log(result); // 输出: John, Doe

这个代码首先使用 filter() 方法从 jsonArray 中筛选出符合 idArray 中 id 的对象,然后使用 map() 方法将这些对象转换为对应的 name 属性的数组。最后,使用 join() 方法将数组中的 name, 分隔成一个字符串。

实现方式二

当使用 find() 方法查找数组中的对象时,它会返回第一个满足条件的元素。而 map() 方法会创建一个新数组,其中的元素是原始数组元素调用某个方法后的返回值。

下面是如何使用 find()map() 方法来实现你的场景:

// 假设你有一个包含 JSON 对象数组的变量
const jsonArray = [
  { id: 1, name: "John" },
  { id: 2, name: "Jane" },
  { id: 3, name: "Doe" },
];

// 假设你有一个 id 数组
const idArray = [1, 3];

// 使用 map() 方法将 id 数组中的每个 id 对应的 name 找出来
const filteredNames = idArray.map((id) => {
  // 使用 find() 方法查找满足条件的对象
  const foundObject = jsonArray.find((obj) => obj.id === id);
  // 如果找到了对象,则返回其 name 属性;否则返回空字符串
  return foundObject ? foundObject.name : "";
});

// 使用 join() 方法将 name 组合成字符串,以 , 分隔
const result = filteredNames.join(", ");

// 输出结果
console.log(result); // 输出: John, Doe

在这个示例中,map() 方法用于遍历 idArray 数组中的每个元素,并使用 find() 方法在 jsonArray 中查找与当前 id 匹配的对象。如果找到了匹配的对象,则返回它的 name 属性;否则返回空字符串。最后,使用 join() 方法将 filteredNames 数组中的元素用逗号连接成一个字符串。

标签:map,const,name,对象,JavaScript,数组,id
From: https://www.cnblogs.com/yuzhihui/p/18087562

相关文章

  • Git22_在IDEA中使用Git5
    一、在IDEA中配置Git安装好IntelliJIDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口,找到VersionControl下的git选项:选择git的安装目录后可以点击“Test”按钮测试是......
  • 一文搞懂idea中的根目录和路径(以Mybatis为例)
    1.根目录概念:1.1项目根目录(ProjectRoot)项目根目录是你在文件系统中为整个项目选择的顶层目录。它通常包含了项目的所有内容,包括源代码、构建配置文件、文档、测试文件等。在版本控制系统中(如Git),项目根目录通常是仓库的根目录。1.2内容根目录(ContentRoot)在IntelliJ......
  • 最新 11 款顶级 Android 数据恢复软件/工具 [免费和付费]
    高效的Android恢复应用程序使用户能够轻松检索丢失或删除的手机数据,即使没有事先备份。因此,Android用户必须购买一个或多个数据恢复应用程序来应对不可预见的情况。那么,哪个工具可以成为你的救星呢?为了帮助您选择最令人钦佩的产品,本页将介绍11款最佳Android数据恢复软件......
  • android ion
    1.简介Android的ION子系统的目的主要是通过在硬件设备和用户空间之间分配和共享内存,实现设备之间零拷贝共享内存。说来简单,其实不易。在Soc硬件中,许多设备可以进行DMA,这些设备可能有不同的能力,以及不同的内存访问机制。ION是Google在Android4.0ICS中引入,用于改善对于当前不同......
  • StringGrid1做数据控件的基本常用操作
    procedureTForm1.StringGrid1SelectCell(Sender:TObject;ACol,ARow:Integer;varCanSelect:Boolean);varR:TRect;org:TPoint;beginifARow>0thenbegin//标题行不能修改ifnotSQLResutIsEmptythenbeginwithSenderasTStringGriddoif......
  • 在 NVIDIA DGX Cloud 上使用 H100 GPU 轻松训练模型
    在NVIDIADGXCloud上使用H100GPU轻松训练模型今天,我们正式宣布推出DGX云端训练(TrainonDGXCloud)服务,这是HuggingFaceHub上针对企业Hub组织的全新服务。通过在DGX云端训练,你可以轻松借助NVIDIADGXCloud的高速计算基础设施来使用开放的模型。这项服务旨在......
  • 2024年 智能机器人元年 —— 国内的智能机器人(humanoid)公司当下最大的压力(最为急迫的
    可以说,2024年是人形机器人的元年。我国在去年年底将发展智能机器人立为了第一线的重要科技发展方向,并计划在2024年、2025年建立出完整的产业链条,并培育出几家成熟的行业领先的智能机器人公司。而我们把目标从国内移向国外,我们可以看到国外也是同样将这个发展方向定位了首要发展方......
  • 8年Android开发面试 30 家公司,终于拿到 Offer !
    前言首先介绍下个人情况,双非本科,写码8年,算是有行业积累。在老东家干了6年,发展一般,很想出去,但是一直没有合适的机会,只好一边准备面试一边学习。让我没有想到的是,突然收到了“毕业”通知,当然,不光是我,而是整个团队。毕业,对于我这样的老员工来说是不错的结果,因为正好我也......
  • 深度解读UUID:结构、原理以及生成机制
    What是UUIDUUID(UniversallyUniqueIDentifier)通用唯一识别码,也称为GUID(GloballyUniqueIDentifier)全球唯一标识符。UUID是一个长度为128位的标志符,能够在时间和空间上确保其唯一性。UUID最初应用于Apollo网络计算系统,随后在OpenSoftwareFoundation(OSF)的分布式......
  • 9.JavaWeb& javaScript基础
    目录导语:一、JavaWeb概述二、JavaScript基础概念:功能:1.基本语法(1)与html结合方式(2)注释(3)数据类型(4)变量(5)运算符(6)流程控制语句:(7)JS特殊语法:案例:99乘法表2.基本对象(1)Function:函数(方法)对象(2)Array:数组对象(3)Boolean(4)Date:日期对象(5)Math:数学对象(6)Number(7)String(8......