Ir para conteúdo
Fórum Script Brasil
  • 0

Calcular media de checkbox's selecionados.


Wesley Goncalves

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0

Eu tentei usar a fórmula do JavaScript fundamental (ES6 Syntax): Get the median of an array of numbers - w3resource, mas não deu certo. Não sei o que eu fiz de errado:

<script>
function atual(){
    arr=[]
    if(inp1.checked){arr.push(inp1.value)}
    if(inp2.checked){arr.push(inp2.value)}
    if(inp3.checked){arr.push(inp3.value)}
    if(inp4.checked){arr.push(inp4.value)}
    if(inp5.checked){arr.push(inp5.value)}
    const median = vr => {
        const mid = Math.floor(vr.length / 2),
        nums = [...vr].sort((a, b) => a - b);
        return vr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;};
        console.log(median([5,6,50,1,-5]))
        console.log(median([1,2,3,45]))
    painel.innerHTML="Valores dos checkbox ativos "+arr+"<br>Mediana "+median(arr)}
</script>
<table>
<tr><td><input id=inp1 type=checkbox value=1 name=arr[] onclick=atual()>1
<tr><td><input id=inp2 type=checkbox value=2 name=arr[] onclick=atual()>2
<tr><td><input id=inp3 type=checkbox value=3 name=arr[] onclick=atual()>3
<tr><td><input id=inp4 type=checkbox value=4 name=arr[] onclick=atual()>4
<tr><td><input id=inp5 type=checkbox value=5 name=arr[] onclick=atual()>5
</table>
<div id=painel><div>

No código JavaScript tem dois testes que deveriam dar 5 e 3, mas está dando 5 e 2,5.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0
24 minutos atrás, lowys disse:

Checkbox em uma tabela mysql?
Q programa está usando pra visualizar essa tabela mysql?

A sugestão do sr. Frank é para tabela html

Hahaha... Eu não vi que os valores vinham do MySQL. Que mancada! Mas de todo jeito, o mais importante é o cálculo da mediana. Ele funciona se você colocar o código JavaScript sozinho, se bem que esse código é bem difícil de entender, eu não sei o que é aquele [...arr]. Você já viu um negócio desses?

Link para o comentário
Compartilhar em outros sites

  • 1
17 minutos atrás, Frank K Hosaka disse:

eu não sei o que é aquele [...arr]. Você já viu um negócio desses?

Bão sr. @Frank K Hosaka?
Eu já vi!
Isso daí se chama spread operator: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

No caso da função median foi usado para não alterar o array original, uma vez que no js se passa a referência da variável, 

se usasse vr.sort(), o array vr seria reordenado
logo, ao espalhar o conteúdo de vr em num novo array: [...vr].sort(... o array original foi preservado e essa nova referência de dado em memória foi atribuída à variável nums

em outras palavras:
o spread operator foi usado apenas para fazer uma cópia do array

Editado por wash
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...