quiero verificar si existe una cadena en particular en una matriz de cadenas. tengo una serie de cadenas como a continuación,
const arr = [ "item-group/1/", "item/1/component/2/product/3", "item-group/1/item/1/product/5", "item/1", "item/2", "item/2/component/3/products/6", "item/2/products/7", ]quiero verificar si hay cadenas que coincidan con el artículo/<número_respectivo> diga "artículo/2" o "artículo/3" para las cadenas de productos con el número de artículo respectivo.
estas cadenas tienen un significado
"item-group/1/", //here we have item-group with id 1 "item/1/component/2/product/3", //here product with id 3 belongs to item with id //1 "item-group/1/item/1/product/5", //product with id 5 belongs to item with id 1 "item/1", //item with id 1 "item/2", //item with id 2 "item/2/component/3/products/6",//product with id 6 belongs to item with id 2 "item/2/products/7", //product with id 7 belongs to item with item with id 2entonces, para estas cadenas, quiero verificar si hay productos. si hay cadenas con productos, entonces quiero verificar si el artículo al que pertenecen tiene una cadena con solo artículo/1. en otras palabras, el número después del elemento/ puede ser cualquier cosa.
Entonces, según el objetivo anterior, filtro las cadenas que contienen productos / así que me gusta a continuación,
const products = arr.filter(a => new RegExp(/products\/([0-9]+)(\/)?$/g).test(a) );esto devolverá las cadenas como a continuación,
"item/1/component/2/product/3", "item-group/1/item/1/product/5", "item/2/component/3/products/6", "item/2/products/7",ahora obtengo el número después del artículo/con el siguiente código
const rex = /\item\/(\d+)\//; const itemIds = products.map(str => (str.match(rex) ?? [])[1]) .filter(result => result !== undefined);ahora la salida en itemIds es [1,1,2,2] elimino valores duplicados así
const newItemIds = new Set(itemIds);ahora, ¿cómo compruebo si arr tiene cadenas de elementos/<number_matching_item_id>?
por lo que debería buscar item/1 y item/2, nada debería seguir después de estas cadenas.
como puedo hacer eso alguien me puede ayudar con esto Gracias.