functionのパラメータの渡し方について

このQ&Aのポイント
  • FunctionA・FunctionBがあり、FunctionBは文字列を整数部分と小数部分に分ける処理を行うものです。
  • FunctionAから、FunctionBに処理したい文字列を渡し、FunctionBで処理を行い、整数部・小数部の2つの値をFunctionAに返し、それぞれに対してさらに処理を行う方法を知りたいです。
  • 現在は、FunctionBからFunctionAに値を返すことができません。どのように記述すれば良いか教えてください。
回答を見る
  • ベストアンサー

functionのパラメータの渡し方について。

FunctionA・FunctionBがあり、FunctionBは文字列を整数部分と小数部分に分ける処理を行うものです。 FuctionAから、FuctionBに処理したい文字列を渡し、 FunctionBで処理を行い、整数部・小数部の2つの値を FunctionAに返し、FucntionAで、それぞれに対して、さらに処理を行う・・・ということを書きたいのですが。 FucntionBからAにうまく値を返すことができません。 一体どういうふうに記述したらいいんでしょうか? (ちなみにFuctionBでは正常に値を取れます。) 現在のところは、こういう風に書いてます。 (これではちっともできないんですが) ************************************** FunctionA{ var strB; var wSeisu; var wSyosu; strB="1234.56" DivPoint(strB,wSeisu,wSyosu); strB=wSeisu; aftPoint=wSyosu;   ・   ・  ・ } *********************************** function DivPoint(strPoint,wSeisu,wSyosu){ wPoint=strPoint.indexOf(".",0); if(wPoint>=0){ Parts=strPoint.split("."); wSeisu = Parts[0]; wSyosu=Parts[1]; } else{ wSeisu=strPoint; wSyosu=""; } return(strPoint,wSeisu,wSyosu); }

noname#4065
noname#4065

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

配列を関数の戻り値に使うという感じではいかが? function DivPoint(strPoint) {   ... // wSeisu と wSyosu に分離する処理   ret = new Array(2);   ret[0] = wSeisu;   ret[1] = wSyosu; } function FunctionA() {   ...   ret = DivPoint(strB);   strB = ret[0];   aftPoint = ret[1];   ... }

noname#4065
質問者

お礼

ありがとうございます!! 教えていただいたように記述しましたところ、 バッチリでした。 お返事遅くなりましてすみません。 またよろしくお願いします。

関連するQ&A

  • jQuery 複雑なswitch文を作りたい

    jQueryの処理を高速にするため、スクリプトを現在、見直しています。 すみませんが、またまた質問させてください。 HTML側にふられている変数(var page;)の値を取得し その変数によって、bodyに別々のclassを追加したいと思っています。 HTMLは数ページあり、それぞれ異なる値です。 $(function(){ if(page.indexOf("あああ")!=-1){ $("body").addClass("aaa"); }else if(page.indexOf("かかか")!=-1){ $("body").addClass("kkk"); }else if(page.indexOf("さささ")!=-1){ $("body").addClass("sss"); } }); 上記のようにやっているのですが、 if文より、switch文でやったら早いかなぁと思いいろいろ試しています。 ですが、indexOfで取得しているように、var pageで取得したい文字は一部分なのです。 ↓こんな感じです。 var page = "あああいいい"; var page = "かかかききき"; var page = "さささししし"; なので、switch文のcaseに置く定数式に、ぴったり当てはまる文字列ではないのです。 以下の例は3つの条件ですが、 実際は10ページ近くあるので、それをすべてif文で書くのはスマートでない気がします。 そもそも、こういった場合はif文を使うしかないのでしょうか? switch文でなくても、他のやり方でも、 何か早く処理できる方法がありましたら教えてください。 宜しくお願いいたします。

    • ベストアンサー
    • AJAX
  • firefox3 GETパラメータが文字化けする問題 

    a.php -> b.html(子ウィンドウ) a.php = Shift_JIS b.html = EUC-JP URLの含まれてるパラメータをjavascriptで切り取って b.htmlのフォームの値をセットしています、 IEでは問題ありませんが、 firefox3ではパラメータが文字化けしまいます。 (全角のみだと思いますが) b.html のjavascript です。 var Request = function() { this.getParameter = function( name ) { var rtnval = ""; var nowAddress = unescape(location.href); var parameters = (nowAddress.slice(nowAddress.indexOf("?")+1,nowAddress.length)).split("&"); for(var i = 0 ; i < parameters.length ; i++) { var varName = parameters[i].split("=")[0]; if(varName.toUpperCase() == name.toUpperCase()) { rtnval = parameters[i].split("=")[1]; break; } } return rtnval; } } どう対応すればいいのでしょうか。涙  

  • 配列内の文字列検索をしたい

    お世話になっております、またjavascriptで詰まってしました。現在作ってるソースは以下のイメージです。 var temp= hensuu; var list = "aa,bb,cc"; //tempがaa,bb,ccの文字を含んでいたら処理 if(list.indexOf(temp)!=-1){ //ここで何番目の要素か知りたい } という処理をしているのですがif(list.indexOf(temp)!=-1)の中で「文字列(list)に存在する」だけでなく,「区切りの何番目の要素か」も知りたいんですがそういう便利な関数か方法はあるでしょうか? list.indexOf(temp)の返す値は「文字列が見つかった場所」なのでリストの順番ではないんですよね…。 for文でひとつひとつ回すしか方法は無いのでしょうか??LIST(もしくは配列)内検索関数みたいなのがあればナイスなんですが…。分かる方、ご教授頂けたらこれ幸いです。

  • SafariのIframeで高さが取得できません

    <script language="JavaScript"> <!-- function frame_check(){ if(main.document.body){ if(navigator.userAgent.indexOf("Opera") != -1){ // 文字列に「Opera」が含まれている場合 var f = main.document.body.scrollHeight; } else if(navigator.userAgent.indexOf("MSIE") != -1){ // 文字列に「MSIE」が含まれている場合 var f = main.document.body.scrollHeight; } else if(navigator.userAgent.indexOf("Firefox") != -1){ // 文字列に「Firefox」が含まれている場合 var f = main.document.body.offsetHeight; } else if(navigator.userAgent.indexOf("Netscape") != -1){ // 文字列に「Netscape」が含まれている場合 var f = main.document.body.offsetHeight; } else if(navigator.userAgent.indexOf("Safari") != -1){ // 文字列に「Safari」が含まれている場合 var f = main.documentElement.offsetHeight; } if(f) document.getElementById("frame_set").height=f+20; setTimeout("frame_check()",100); }else{ setTimeout("frame_check()",100); } } setTimeout("frame_check()",10); --></script> <iframe name="main" id="frame_set" src="mainf.html" width="800" height="4000" frameborder="0" scrolling="no"></iframe> 上記のスクリプトを作成しましたが、IE7、 Firefoxではうまくいきますが、SafariではIframeに表示するページの高さが取得できません。 どこが問題なのかご教授お願いいたします。

  • javascriptでGETパラメータを扱う

    javascript初心者です。 javascriptでURLをGETパラメータとして取得して、その値を HTMLのaタグのリンク先に指定しようとしています。 こんな感じに出来たらいいと思っています。 ↓ <a href="[GETパラメータで取得したURL]">[GETパラメータで取得したURL]</a> GETパラメータの取得は自力で調べて下記のように記述すればできることがわかりましたが、 aタグのリンク先に指定する記述方法が分かりません。 助けてください。 よろしくお願いします。 <script type="text/javascript"> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } </script>

  • 教えてください。。。

    コマンドライン引数を2個 入力したときに加算されるプログラムを作成中なのですが、桁が大きい場合と文字を入力した場合が同じエラー処理になります。 別々に分けるエラー処理を教えて頂きたいと思います。 あと、引数一つの時もエラーになる処理をご教授お願いします。 public class Sample20 { public static void main(String[] argv) { if(argv.length>=2) { int a,b; try { if(argv[0].indexOf(".") == -1 && argv[1].indexOf(".") == -1) { try { a=Integer.parseInt(argv[0].replaceAll("\\+" , "")); b=Integer.parseInt(argv[1].replaceAll("\\+" , "")); System.out.println(a+b); } catch(NumberFormatException e) { System.out.println("整数の桁がおおき過ぎます"); } } else { System.out.println("小数点は整数ではないので実行できません"); } } catch(Exception e) { System.out.println ("エラー:2個整数のみ入力して下さい"); } } else { System.out.println("エラー:整数ではありません。"); } } }

  • 全角を半角にして、整数か小数か調べて最後の0を削除

    全角の数字が含まれた文字列を整数か小数かを判別して、 最後の余分な0を非表示にしたいです。 結果をこのようにさせたいです。 980.01 ←小数 3213.12 ←小数 3222.0003 ←小数 1000.2001 ←小数 2314 ←整数 1200.98 ←小数 2980 ←整数 2313.12 ←小数 3222.0003 ←小数 800 ←整数 4500 ←整数 <?php $ary = array( '980.0100', '3213.1200', '3222.0003', '1000.2001', '2314.0000', '1200.9800', '2980.0000', '2313.1200', '3222.0003', '0800.0000', '4500.0000' ); $count = count($ary); for($i=0; $i<$count; $i++){ $inputData = $ary[$i]; $hankaku = mb_convert_kana($inputData,'n',"utf-8"); if(!preg_match('/^0$|^-?[1-9][0-9]*$/', $hankaku)) { echo $hankaku.' ←小数'.'<br>'; } else { echo $hankaku.' ←整数'.'<br>'; } } ?>

    • ベストアンサー
    • PHP
  • 数値の抽出方法がわからず困っています

    テキストデータの処理がうまくいかず困っています。 ----------------------------------------------- a:0.001 b:-11.111 c:50.5 d:-12.345 ----------------------------------------------- といった文字列から ----------------------------------------------- 0.001 -11.111 50.5 -12.345 ----------------------------------------------- といった形で符号や小数点を含めて抽出したいのですが どのようにするのが良いのでしょうか。 各値は、それぞれの値がスペースによって区切られています。 また、各値は数値の大きさがそれぞれ異なり桁数が一定ではありません。 split や substr を用いてやろうとしているのですが、 なかなか思ったとおりの形で出力できません…

  • 小数点付きの余分な桁を消すには

    014.5 002.1 のような小数点つきで整数の部分を3桁に揃えた 文字列のはじめの「0」や「00」を消して 普通の数字に戻したいのですが、どの様にすればよいのでしょうか? 厄介でしょうが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • Excelの表示形式のユーザ定義

    Excel 2007 です。 例えば、値として 100.5 と入力すると、 表示が 100:30 となる表示形式のユーザ定義設定は可能ですか? 整数部を[時間]、小数部を[分]に換算して表示させたいです。 また、他のセルから参照して計算式にも利用します。 表示形式の設定でなくても、 "100:30" と入力した文字列を計算に使えれば問題ありません。 関数を駆使して、文字列から数値にうまく変換して計算するしかないでしょうか。

専門家に質問してみよう