如果与提供的 id 匹配,如何从对象数组中获取 slug 值?
Posted
技术标签:
【中文标题】如果与提供的 id 匹配,如何从对象数组中获取 slug 值?【英文标题】:How to get slug value from array of objetcs if match with provide id? 【发布时间】:2020-05-05 20:50:50 【问题描述】:我正在尝试从数组中获取 slug 值,如果在 object.extra.services 数组中,其中一个元素与我提供的 id 匹配...
// Service ID provided
const serviceID = '5cdd7c55f5abb90a689a44be';
// Array of services Ids
getProductsServices(products)
const productsServices = [
...new Set(products.map(product => product.extra.services))
];
const productsList = [].concat.apply([], productsServices);
return productsList;
,
// ServiceId Matching
serviceMatch(serviceID)
return this.getProductsServices.includes(serviceID);
现在我需要在数组中获取与提供的服务 ID 匹配的 slug 值。
products [
"_id" : ObjectId("5e0257dcbe760674b10d4122"),
"desc" : "Diseño de Pagina Web",
"extra" :
"image" : "/2018/06/diseño-de-logos-para-empresas.jpg",
"services" : [
"5cdd7c55f5abb90a689a44be",
"5cdd7c55f5abb90a689a3fcc",
"5cdd7c55f5abb90a689a3f42"
]
,
"name" : "Diseño de logo",
"slug" : "diseno-de-logotipos-online"
,
"_id" : ObjectId("5e0257dcbe760674b10d4122"),
"desc" : "Diseño de logo",
"extra" :
"image" : "/2018/06/diseño-de-logos-para-empresas.jpg",
"services" : [
"5cdd7c55f5abb90a689a44be",
"5cdd7c55f5abb90a689a3fcc",
"5cdd7c55f5abb90a689a3f42"
]
,
"name" : "Diseño de logo",
"slug" : "diseno-de-logotipos-online"
,
"_id" : ObjectId("5e0257dcbe760674b10d4122"),
"desc" : "Diseño de Interior",
"extra" :
"image" : "/2018/06/diseño-de-logos-para-empresas.jpg",
"services" : [
"5cdd7c55f5abb90a689a44be",
"5cdd7c55f5abb90a689a3fcc",
"5cdd7c55f5abb90a689a3f42"
]
,
"name" : "Diseño de logo",
"slug" : "diseno-de-logotipos-online"
]
【问题讨论】:
【参考方案1】:尝试包含:
const found = products.find(product => product.extra.services.includes("5cdd7c55f5abb90a689a3fcc"))
if (found)
console.log('found', found)
【讨论】:
【参考方案2】:如果我理解正确,您可以使用find 和some 来实现它:
const product = productsList.find(product => product.extra.services.some(id => id === serviceID))
console.log(product.slug)
【讨论】:
太棒了,这就像一个魅力,对我的工作进行了一些改变,我的朋友,Namaste...希望你的人生道路变得更加光明!以上是关于如果与提供的 id 匹配,如何从对象数组中获取 slug 值?的主要内容,如果未能解决你的问题,请参考以下文章
如果在 Gatsby 中布尔键匹配 true,则从对象内的对象数组中获取项目 - Graphql
如何从可能是与给定 id 匹配的父级或子级之一的列表中获取对象
使用 Mongoose 从 JSON 对象数组中查询具有匹配 ID 的集合