質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

1287閲覧

phpの$N=array_sum(str_split($n));をjquery で表記したいです。

temari-s

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/07/12 16:49

編集2018/07/13 02:48

phpでかかれたコードを「submit」ボタンをなくしてほしいという要望からjqueryで書き換えています。
テキストボックスに入ってきた数値を計算し、一桁になるまで和を出していくものです。

phpでしたら下記にコードで1桁になるのですが
jQueryではどのように表記すればよいのでしょうか?

初歩的な質問で申し訳ありませんがよろしくお願いします。

php

1<?php 2$n=0123456789; 3while(($N=array_sum(str_split($n))>=10); 4?>

これをjquery /javascriptで計算しようとしています
個々の値はとれたのですが、これを1桁になるまでの計算方法がわかりません。
個々の足し算でfor、1桁になるまでの和でwhileをかいていいのか分岐させるのか・・・。

javascript

1 2$(function()){ 3//1文字ずつくぎる 4 var n=n.split('');  5//和 6 var a=0; 7 for(i=0; i<n.length; i++){ 8 a + = n[i]; 9 } 10 11 function keisan(t){ 12 if(parseInt(t)<10){ 13 return(t); 14 }else{ 15 var sum=0; 16 for(var i=0;i<t.length;i++){ 17 sum=sum+parseInt(t.substr(i,1)); 18 } 19 return(keisan(sum.toString())); 20 } 21} 22};

まず、個々の和からとれていない現状です。
3+5=35といった数字として認識されていません。
後半の計算は(http://stabucky.com/wp/archives/4250)引用です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/07/12 16:53

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
kei344

2018/07/12 17:39

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、提示のPHPではエラーが起こると思いますよ。
temari-s

2018/07/12 17:41

質問の仕方から、編集の仕方までわかってないようです。
m.ts10806

2018/07/13 00:56

ちなみにコードブロックの冒頭```の部分を```php ```js のように言語名を入れると適切にハイライトしてくれますのでご活用ください(更に読みやすくなります) コードブロックで使える言語一覧:https://teratail.com/questions/7119
m.ts10806

2018/07/13 00:57

提示のコードでは「jQueryの記述」ではなく「JavaScriptの記述」になっています。「JavaScript」もタグに追加しておいてください。
temari-s

2018/07/13 02:33

ご丁寧にありがとうございました!
m.ts10806

2018/07/13 02:35

質問は編集できるので適宜対応をお願いします。質問内容をきちんとして充実させることで的確な回答がつきやすくなり、解決も早まります。
temari-s

2018/07/13 02:48

できる範囲で対応いたしました。
guest

回答3

0

ベストアンサー

数学的に計算する、ではだめなのでしょうか(長すぎる場合は文字列として処理したほうが正解ですが)。この操作を行ったあとの値は数字根といって、9で割ったあまりと密接につながっています。

javascript

1let str = '0123456789'; 2let sum = parseInt(str, 10) % 9; 3if(sum === 0 && str > 0) sum = 9;

投稿2018/07/12 23:10

編集2018/07/12 23:11
maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

temari-s

2018/07/13 04:04

確かに!9で割った余りになります。 目からうろこです。
temari-s

2018/07/13 14:39

やりたかったことができました!
guest

0

maisumakunさんのロジックがよさそうですね

javascript

1var str="0123456789"; 2str=parseInt(str)%9||9; 3console.log(str);

投稿2018/07/13 00:47

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

temari-s

2018/07/13 14:39

はい!参考にします。ありがとうございました。
guest

0

js

1let str = '0123456789'; 2while ( typeof str === 'string' || str >= 10 ) str = ( '' + str ).split( '' ).reduce( ( pre, cur )=> pre + parseInt( cur, 10 ), 0 ); 3console.log( str ); // 9 4```**動くサンプル:**[https://jsfiddle.net/xe07qtyf/](https://jsfiddle.net/xe07qtyf/)

投稿2018/07/12 18:21

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

temari-s

2018/07/13 02:49

質問のしかたもままならなかったのに、動くサンプルまでご用意してくださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問