Estoy tratando de hacer una función que obtenga cada clave "cantidad", tome sus valores y multiplique por la clave correspondiente de "tecnología" de la clave principal, si el objeto tiene la clave "A" en "tecnología". se multiplicará por el valor "A" en el primer objeto, esto es lo que hice hasta ahora:
function calcula (tabela, arvore) { for (i = 0; i < arvore.length; i++) { arrFilhos = [`["filhos"][x]`] arrArvore = [`arvore[i]`] arrLevel = [] for(x = 0; x < arvore[i]["filhos"].length; x++){ if ("filhos" in eval(arrArvore[0])){ console.log(eval(arrArvore.toString().replace(/,/g , ""))) arrArvore.push(arrFilhos[0]) } } } }Supongo que la tecnología solo existe en el último nodo.
function calculaCusto (tabelaCusto, arvoreArquitetura) { const cb = (prev, next) => { if(next.tecnologia) { return prev + next.quantidade * tabelaCusto[next.tecnologia]; } else if(next.filhos){ return prev + next.quantidade * next.filhos.reduce(cb, 0); } else { //doesn't have tecnologia nor filhos return; } } return arvoreArquitetura.reduce(cb, 0); }