Javascript 如何从与id';s

Javascript 如何从与id';s,javascript,arrays,object,fetch,Javascript,Arrays,Object,Fetch,如何从与id数组匹配的数组中提取数组中的对象? 这可能吗? 理想情况下,我希望只抓取我需要的对象,而不是抓取我不需要的对象,然后过滤它们,因为这似乎不是很有效 const objects = [ { id: "1", name : "one", }, { id: "1", name : "two" }, { id: "3", name : "thr

如何从与id数组匹配的数组中提取数组中的对象? 这可能吗? 理想情况下,我希望只抓取我需要的对象,而不是抓取我不需要的对象,然后过滤它们,因为这似乎不是很有效

const objects = [
 {
  id: "1", 
  name : "one",
 },
 {
  id: "1", 
  name : "two"
 },
 {
  id: "3", 
  name : "three",
 },
 {
  id: "4", 
  name : "four"
 },
 {
  id: "5", 
  name : "five"
 }
]

如果我没弄错,你只想发送ID列表,只接收匹配的对象

搜索“MDN获取”、“MDN数组筛选器”、“MDN数组查找”

使用fetch,您实际上可以对后端执行请求/响应的组合。 因此,基本上,您希望将感兴趣的“ID”发送到url,让后端进行过滤并获取响应中匹配的对象

后端(如果使用javascript实现)可能返回:

objects.filter(obj => ids.includes(obj.id))
或:


注意:名称“id”可能不是最佳选择,因为它通常用于唯一关系,这意味着如果您在某个位置输入id,它应该只返回一个值(搜索“wiki id”)

“从数组到数组”?嗯?fetch语句也应该是带引号的字符串吗?它不是有效的JavaScript语法,因为
获取(./objects)
。也许你只是在寻找
.filter
.includes
?e、 g.:
objects.filter(obj=>ids.includes(obj.id)
我的错误,很抱歉,我现在添加了一个关于从何处获取的引号:)@wyck仔细阅读后,您似乎希望对结果进行服务器端筛选。如果您正在访问RESTAPI,那么该API可能通过提供查询字符串来支持这种过滤?如果没有,那么您将不得不在客户端过滤您确实得到的结果,正如您所怀疑的那样。您正确地认为客户端过滤的性能不如服务器端过滤。但是你已经收到的结果的javacccript
.filter
不应该让事情变得更糟。啊,我的意思是从fetch api中获取函数。我的意思是如果这个数组是一个端点。我想获取数组中与数组中id匹配的对象。而不是获取所有数据并进行过滤。例如,这些对象可能有关系数据,但在前端获取所有数据并过滤掉这些数据是不可行的。我不确定这是否有意义:)过滤、排序和分页是您正在使用的特定RESTAPI的优秀服务器端功能。你也可以控制后端吗?请注意,
fetch
本身不会神奇地向RESTAPI添加服务器端或客户端过滤功能。我们需要在URL中提供一个查询字符串,其中包含过滤器的详细信息。
objects.filter(obj => ids.includes(obj.id))
objects.filter(x => x.id === ids.find(y => y === x.id))