Estoy tratando de convertir una matriz de cadenas en un solo objeto anidado, sugiero la mejor manera de hacerlo,
Por ejemplo, si tuviera un solo elemento en una matriz
Aporte:
var keys = ["A"];Debería ser así,
Producción:
{ and: { tags: { contains: "A" } } }Y si agrego un segundo elemento por ejemplo,
Aporte:
var keys = ["A","B"];Debería agregarse como un objeto anidado como este,
Producción:
{ and: { tags: { contains: "A" }, and: { tags: { contains: "B" } } } }Puede intentar usar la función Array.reduceRight ( gracias a la sugerencia de Drew Reese ):
const nest = arr => arr.reduceRight((acc, cur) => ({ and: { tags: { contains: cur }, ...acc } }), {}); console.log(nest(['A'])); console.log(nest(['A', 'B'])); console.log(nest(['A', 'B', 'C']));