Porcentagem regra de 3 javascript

Boa tarde, como consigo gerar uma porcentagem desse array:
valor = [
{ text: ‘Teste1’, value: 1 },
{ text: ‘Teste2’, value: 1 },
{ text: ‘Teste3’, value: 5 },
{ text: ‘Teste4’, value: 1 },
{ text: ‘Teste5’, value: 1 },
{ text: ‘Teste6’, value: 1 }
]

Eu fiz assim dentro do map Math.round((item.value / valor.length) * 100)

Mas ele me retorna isso:

Teste1 17%
Teste2 17%
Teste3 83%
Teste4 17%
Teste5 17%
Teste6 17%

Alguém consegue me ajudar?

valor.length é o tamanho do array valor, que no caso é 7.

Mas para calcular a porcentagem, você tem que levar em consideração a soma dos valores (e não a quantidade deles). Então primeiro tem que calcular essa soma:

let total = 0;
for (const item of valor) {
    total += item.value;
}

E você usa esse total no cálculo da porcentagem:

for (const item of valor) {
    // usa o total em vez de valor.length
    const perc = Math.round((item.value / total) * 100);
    console.log(`${item.text} ${perc}%`);
}

Saída:

Teste1 10%
Teste2 10%
Teste3 50%
Teste4 10%
Teste5 10%
Teste6 10%
1 curtida

Ia começar a fazer com Reduce, mas esse modo deu certo, obrigada :heart::heart:!