beginner11
@beginner11 (林 晃希)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

1からNまでの合計をJSで求めたい

解決したいこと

1からNまでの合計をJSを用いて求めたいです。

例)
どうすればJavaScriptで1からNまでの合計を
求める事ができるでしょうか。
どうやっても合計数の部分が正常に表示されません。
(例:1から10ならボタンをクリックすると55と出るが、何故か2(桁数かバイト数)が出る。)

発生している問題・エラー

出ているエラーメッセージを入力

合計値がnullと表示される

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

JavaScript
ソースコードを入力

1からの合計は

合計

自分で試したこと

変数の配置を変えてみたり、ソースコードを何度も書き直してみたりしましたが、
どうにも上手くいきませんでした。

0

5Answer

単純な方法でよければこれで。Webブラウザの開発ツールのコンソールにて。

> N = 10
10
> console.log(N*(N+1)/2)
55
5Like

Comments

  1. @beginner11

    Questioner

    お教えいただきありがとうございます!

自分ではどこまでコードが書けていて、どこで躓いていて、何が分かれば解決するかを、「該当するソースコード」欄に質問者さんのコードを提示して説明することはできますか?

1Like

Comments

  1. 気が付きませんでしたが、最初の質問にはコードを提示してますね。しかし、書き方の問題で表示されてないようです

    バッククォート 3 つでコードの行の上下を囲えば表示されるはずですのでやってみてください。

    そして、上の画像はレスごと削除してください。最初の質問にあった val+=sum; を画像では sum+=val; に変えたようですが、黙ってそういうことをするのは止めてください。話のつじつまが合わなくなりますので。

  2. @beginner11

    Questioner

    せっかく教えていただいているのに身勝手な行為をしてしまって申し訳ございませんでした。

HTMLタグがミュートされてしまうので,コードを提示する際はCodeblockを使用してください.
投稿前にプレビューで正しく表示されることを確認してください.
https://qiita.com/Qiita/items/c686397e4a0f4f11683d

解法自体はすでに他の方が回答してくださっているので,所感というかアドバイスになるかはわかりませんが

function calcSum(){
  var max=document.getElementById("max").value;
  var sum=document.getElementById("total");    

  for (var val=0; val<max.length; val++){
    val+=sum;
  }
  console.log(sum);
  var total=sum;
  document.getElementById("val").textContent=max;
  document.getElementById("sum").textContent=total;
}

このソースを一目見て「ここで何をしたいんじゃ?」ということが説明できるかどうかだと思います.
フローチャートを組むくらいの基礎知識があれば,やりたいこととやってることが合ってないことが分かると思います.

今回であれば「連続した数の合計値を求める」という基本的なロジックとして,sumに合計値を保存したいなら0で初期化しなければならないでしょうし,sum+=valでなければならないところがval+=sumと逆になっています.ついでに言えばtotalというidを持った要素はありません.

あと全初学者に言いたいこととして constletを使いましょう.未だにvarなんてもんを使っているコードはだいたい古いスニペットなので,参考にするときは注意が必要です.

1Like

Comments

  1. HTMLソースが書いてあったのですね。気付きませんでした。

  2. @beginner11

    Questioner

    もう少し補足事項を入れておくべきでしたね。申し訳ございませんでした。

皆さんのご協力もあり、無事解決することが出来ました。本当にありがとうございます。

0Like

Your answer might help someone💌