のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,635,369人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.132 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    951 : Name_Not - 2018/04/15(日) 20:58:33.58 ID:???.net (+54,+10,-14)
    >>950
    次スレはよ
    952 : Name_Not - 2018/04/16(月) 03:22:43.49 ID:???.net (+41,-29,-79)
    配列に配列を破壊的に追加したい場合
    Array.prototype.push.apply(array,array1)
    とやりますが、
    これと同じことをやる関数はlodashにないのでしょうか?
    こういう書き方はシンプルじゃないので、
    こういうのこそlodashにあって欲しいのですが見当たりません
    他のやり方があるのでしょうか?
    953 : Name_Not - 2018/04/16(月) 03:37:30.62 ID:???.net (+81,+29,-16)
    javascriptで作ってもらったウェブアプリの出来がいいかわるいか
    どのあたりを見てどうやって判断すればいいんでしょうか?
    954 : Name_Not - 2018/04/16(月) 04:51:18.87 ID:???.net (+99,+29,-46)
    >>952
    いや、lodashは関数型っぽくするライブラリだから
    破壊的なメソッドの方が違和感あるよ
    ただの便利ツールじゃないんだからさ
    そこの所は認識間違ってるので訂正しておいてね
    955 : Name_Not - 2018/04/16(月) 06:29:35.61 ID:???.net (+46,-29,-9)
    >>952 array.push(...array1)でいいじゃない
    >>953 全部を見て君が素直にどう感じるか
    956 : Name_Not - 2018/04/16(月) 09:59:22.05 ID:???.net (+74,+29,-43)
    回答ありがとうございます

    >>954
    関数型言語的な性質が大きいのは確かですが
    破壊的メソッドも複数提供してるのでそこは是々非々では?

    >>955
    その書き方をすっかり忘れていました
    こういう場合に使うんですね・・!

    ありがとうございました
    957 : Name_Not - 2018/04/16(月) 15:49:02.81 ID:wBM3V2Kg.net (+73,+29,-276)
    chromeで画像検索結果等から、画像を自PCにダウンロードして自分のブログへ画像アップロード
    というような画像アップロード簡易プログラムといったものを作成したいと思っています。

    この一連の処理を一度行うプログラムの開発を試みています。
    画像を右クリックすると「ブログにアップする」などみぎっクリックメニューなどを作成するのが目標です。

    PHPで自分のブログに画像をアップロードする、というものは一応できたのですが、
    chromeで画像のURLを取得するといった、
    ブラウザ上の処理はjavascriptと思うのですが、
    javascriptでもしURLを取得できたとしても、PHPの側に変数をどう受け渡せばよいのか
    調べてもはっきりわからない状態です
    そもそもの言語も大体javascriptとかPHPあたりでよいと思うのですが、
    どうすればうまくいきますでしょうか…。
    958 : Name_Not - 2018/04/16(月) 16:09:11.47 ID:???.net (+72,+27,-13)
    無断転載しちゃうんだ
    959 : Name_Not - 2018/04/16(月) 16:31:58.17 ID:wBM3V2Kg.net (+42,+29,-109)
    >>958
    いえ、認められているフリー素材のみです!!


    javascriptでサーバーにアップロードうんぬんというそういうものは出来ないし、
    PHPでブラウザ上のものを色々操作したりデータ取得等できないし、
    ここをどう融合するのか…という
    クリップボードを利用して変数の出し入れ、など思ったのですが
    そこもよく分からず・・
    しかし、画像右クリック、デスクトップ等に保存、
    それぞれの自分のブログで画像アップロードボタン系を押して、画像を選択して、
    などここは絶対にプログラミングの知識がすごく使える場面だと思うのですが…。
    960 : Name_Not - 2018/04/16(月) 17:03:37.66 ID:???.net (+3,-30,-122)
    //JS側
    fetch('PHPのURL', {
    method: 'POST',
    mode: 'cors',
    body: new URLSearchParams({url: '画像のURL'}),
    });

    //PHP側
    header("Access-Control-Allow-Origin: *");
    $_POST['url']; //これが画像URL
    961 : Name_Not - 2018/04/16(月) 19:25:38.49 ID:ukfttz2j.net (+69,+29,-34)
    >>953
    変数名や関数名に一貫性があるかとか

    複雑なプログラムのデザインが正解かどうかなんてプロでも簡単にはわかんない

    メンテしやすいかどうかとかムード。
    962 : Name_Not - 2018/04/16(月) 19:30:23.02 ID:???.net (+0,-27,-5)
    javascripter()らしいお粗末な回答どうもw
    963 : Name_Not - 2018/04/16(月) 23:44:37.81 ID:???.net (+46,-30,-218)
    http://webings.net/js/dentaku/
    このソースコードのjavascriptの部分の流れが良く理解出来ません
    1.
    if(val >= 0 && val <= 9) { // 電卓に表示する数列を作成
    if(flag == 0) {
    disp = val;
    disp2 = "0";
    flag = 1;
    }
    else {
    disp = disp + val;
    disp = parseFloat(disp);
    }

    数字のボタンを押した際の処理内容はここですよね?
    どうして129と連続で入力した際は出力に129と出るのですか?
    何故毎ループでdispが1→2→9と上書きされていかないのですか?


    2. else {
    if(disp) の部分

    if(disp)は何を判定してるのですか?
    switch(flag)で計算内容を判定していますが、このflagは、このあとの処理の
    if(val == "=") {}で設定されるのではないのですか?


    質問多くて申し訳ないですがよろしくお願いします
    964 : Name_Not - 2018/04/17(火) 01:17:48.98 ID:???.net (+8,-29,-50)
    >>957-959
    スクレイピングは、Ruby で、Selenium WebDriver を使う。
    静的なページなら、Mechanize

    ブラウザで、ページの画像を右クリックすると、画像のURL がわかるとかは、
    ブラウザのプラグインを使わないと無理だろ
    965 : Name_Not - 2018/04/17(火) 01:28:13.60 ID:???.net (+83,+30,-78)
    >>963
    こういう、1行ずつ説明していない、日記のような、
    他人に教えていない、サイトを見たらダメ

    他人のプログラムを解析するのは、自分で書いていないから、やたらと時間が掛かるし、
    その割には、自分で書いていないから、いくら分析しても、自分の力が向上しない

    他のサイトを見て、1行ずつ自分で書いて、実行して確かめながら、勉強すべし
    966 : Name_Not - 2018/04/17(火) 02:04:41.60 ID:???.net (+83,-30,-259)
    下のコードを実行するとnが9000超えると
    Uncaught RangeError: Maximum call stack size exceeded
    というエラーがでるのですがどうすればいいのでしょう?
    7万回くらい回したいんですが。。。

    var locateBalls = (n, array, func, ) => {
    if (n > 8900) {
    //console.log(balls)
    return balls;
    } else {
    //console.log("n: "+ n)
    //console.log("x: " + ball.x + " y: "+ ball.y)
    return locateBalls(n+1, func(), func);
    }
    }

    locateBalls(0, balls, createBall)
    967 : Name_Not - 2018/04/17(火) 02:06:20.13 ID:???.net (+22,-30,-147)
    >>963
    dispっていうのはおそらくdisplayの略
    画面に表示されている文字列
    valっていうのはおそらくvalueの略
    現在入力した文字

    > disp = disp + val;

    文字と文字を+すると、くっつく。
    例えば "a" + "b" だと"ab" になる
    よってこの行で、画面が "1" で入力が "2" だと
    dispには"12" がはいる。同様に"9"を押すと "129" となる

    > if(disp)は何を判定してるのですか?
    正直言ってぱっと見じゃ分からん。
    +-×÷押した時にdispが空になってるから
    それ以外の時に処理するものなんだろうけど
    なんでこんな判定になるのか。そもそも普通の電卓は画面が空白に
    なったりしない。直感的でないので分からんし、
    クソコード(俺ならこんなコード書かない)なんで読み解きたくもない

    >>965も言ってるけど、これは自分で勉強して、こんなの作ってみましたって
    だけなんで勉強には不適切
    968 : Name_Not - 2018/04/17(火) 02:09:52.36 ID:???.net (+57,+29,-40)
    どうしても動きを知りたいならローカルで実行するとか、
    http://jsbin.com/ とかhttp://jsfiddle.net/ とかに貼り付けて
    書き換えて違いを見てみたら?
    969 : 966 - 2018/04/17(火) 02:18:31.37 ID:???.net (+56,+22,-11)
    >>966
    ちなみに公開とかするコードじゃないので自分の環境だけでできればいいです。
    970 : Name_Not - 2018/04/17(火) 02:30:01.65 ID:???.net (+67,+29,-4)
    >>966
    >どうすればいいのでしょう?

    7万も再帰させない方法を考えればいいでしょう
    971 : Name_Not - 2018/04/17(火) 03:26:31.64 ID:???.net (+101,+29,-36)
    >>961
    同意
    設計まで踏み込まにゃならんからな

    逆にいえば一目見ただけで判断出す奴は
    歴史に残る程の大天才か、もしくは人間未満のクズ
    972 : Name_Not - 2018/04/17(火) 04:26:03.60 ID:???.net (+18,-29,-57)
    >>966
    JavaScript には、末尾再帰が無いのか?

    末尾再帰すると、スタックに積まずに、
    while loop の形に展開してくれる最適化

    それか、スタックサイズを大きく設定するとか。
    ただし、swap が起きて、すごく遅くなるかも
    973 : Name_Not - 2018/04/17(火) 06:37:36.04 ID:???.net (+71,+29,-40)
    >>971
    出来の良さにコードの質は関係ないよ
    逆にコードの質が良いことをアプリの出来が良いとは消して言わない
    974 : Name_Not - 2018/04/17(火) 06:53:06.95 ID:???.net (+0,-29,-16)
    >>972
    あるがまだSafariくらいしか実装していない
    975 : Name_Not - 2018/04/17(火) 08:51:56.76 ID:???.net (+63,+30,-105)
    ecmaの仕様に入ったから末尾再帰はいずれすべてのブラウザに実装されるがあえて言いたい。
    末尾再帰は甘え。
    なぜ末尾再帰にするのか?
    それはブラウザでループに置き換えられるから。
    そんな志と抽象レベルの低いこと考えながら使うくらいなら再帰なんてやめちまえ。
    再帰はアルゴリズムをスマートに書き表せるから素晴らしいのだ。
    forループに変換できるかどうかは関係ない。
    それが目的なら最初からfor書け。
    976 : Name_Not - 2018/04/17(火) 09:01:13.11 ID:???.net (+57,+29,-14)
    要らないところでむやみやたらに再帰使っても可読性が落ちるだけ
    977 : Name_Not - 2018/04/17(火) 09:08:54.59 ID:???.net (+79,+29,-40)
    フォルダ内のサブディレクトリ含むすべてのファイルの列挙とか、ツリー構造扱うときは再帰使わないと逆に分かりにくい。
    何でもかんでも可読性が落ちると言ってるバカは自分が理解できないから貶めてるだけ。
    分からないのお前だけだよw
    978 : Name_Not - 2018/04/17(火) 10:59:45.26 ID:???.net (+57,+29,-64)
    コード中のハンドラ登録部分が探しにくいのですが
    いい方法はありませんか?
    だらだら長いメソッドチェーンになって関数単位になっているわけではないので
    何で検索したらいいのか?ってなります
    979 : Name_Not - 2018/04/17(火) 20:20:52.98 ID:???.net (+57,+29,-8)
    なれると再帰による反復のほうがシンプルで読みやすいのに
    980 : Name_Not - 2018/04/17(火) 21:30:42.91 ID:???.net (+76,+29,-9)
    なれるも慣れないも再起なんて意識するようなものではないと思うがな
    981 : Name_Not - 2018/04/17(火) 21:36:10.52 ID:???.net (+63,+30,-42)
    くっだらないマウントw
    意識しなくてよかったならわざわざ言うまでもない。
    慣れなかったなら慣れればいいだけ。
    それだけのこと。
    俺様は賢いから慣れるもなにも意識したことなんてない!ないんだ!聞いて聞いて!誉めて讃えてーっ、てかwww
    982 : Name_Not - 2018/04/17(火) 21:39:27.70 ID:igkWy4Si.net (+38,+29,-24)
    >>977
    それは「再帰しなきゃできない」じゃない?

    あれ?できるか、まぁ泥臭いこと書きたい初心者はほっときましょう。
    983 : Name_Not - 2018/04/17(火) 21:48:21.91 ID:igkWy4Si.net (+38,+29,-62)
    >>980
    そりゃ980は頭いいのかもしれないけどな

    普通プログラムはじめて再帰処理ってのはこんがらかるポイントだと思うよ

    自分で自分を呼ぶ?なんじゃそりゃー つってな

    あと三項演算子とか正規表現
    984 : Name_Not - 2018/04/17(火) 22:36:33.92 ID:???.net (+62,+29,-37)
    JavaなりCなりどっちだったか忘れたけど
    サブディレクトリ漁りとかで再帰覚えたっけな

    JavaScriptだと……なんかいい例が思いつかん
    入口がJavaScriptだと再帰を勉強する材料が少ないのかも
    985 : Name_Not - 2018/04/17(火) 23:36:08.60 ID:???.net (+16,-30,-121)
    >>965
    >>967
    ありがとうございます
    自分で1から考え直しているのですが、

    var operatpr に"+"や"x"を入れた際に、
    switch(operator)
    とやるのは面倒くさいので、
    ans = parseInt(disp) operator parseInt(disp)
    みたいにする方法有りませんかね?
    986 : Name_Not - 2018/04/17(火) 23:38:57.73 ID:???.net (+1,-28,-50)
    >>985
    追記
    文字列で全部連結してevalで実行するような感じです(ただ、evalは使いたくないです)
    987 : Name_Not - 2018/04/17(火) 23:56:11.28 ID:???.net (+57,+29,-4)
    動的型付言語ウザすぎる
    Int型じゃねーのかよお前死ね
    988 : Name_Not - 2018/04/18(水) 00:07:07.34 ID:???.net (-2,-30,-36)
    なんで、stringはval.toString()なのに、intはval.toInt([radix])じゃなくてparseInt(val[, radix])なんですか
    統一性がない
    989 : Name_Not - 2018/04/18(水) 00:16:58.44 ID:???.net (+2,-30,-46)
    文字列は文字列で
    parseInt("0"+variable, 10)なんてキモい書き方しないとNaNになるクソ言語
    990 : Name_Not - 2018/04/18(水) 00:20:37.13 ID:???.net (+67,+29,-14)
    >>957
    あえて省いてるのかも知れんけど
    もし拡張機能の使用を前提にしてるならそう書かないと答えようが無いよ
    991 : Name_Not - 2018/04/18(水) 00:29:17.59 ID:???.net (-1,-30,-21)
    >>989
    parseInt("123") で 123 になるが?w
    992 : Name_Not - 2018/04/18(水) 00:40:17.93 ID:???.net (+3,-30,-153)
    parseInt('123'); // int 123 妥当
    parseInt('0123'); // int 123 わかる 頭が0な文字列でも第2引数省略しても8進数扱いされなくなった
    parseInt('abc'); // NaN わかりたくないけど、100歩譲ってわかるとしておこう
    parseInt('abc123'); // NaN クソが
    parseInt(''); // NaN shine
    993 : Name_Not - 2018/04/18(水) 00:50:55.51 ID:???.net (+18,-9,-49)
    よく分からんが、abcという文字列も数値に変換しろ!
    って言ってんのか?
    994 : Name_Not - 2018/04/18(水) 01:01:26.36 ID:???.net (+32,-29,-26)
    c++やjavaで文字列値・整数値のキャストに面倒があっても許容できる
    php 柔軟
    js クソ
    995 : Name_Not - 2018/04/18(水) 01:22:15.74 ID:???.net (+57,+29,-7)
    jsは動的なのがそもそもゴミ
    キャストが面倒くさいのもゴミ
    996 : Name_Not - 2018/04/18(水) 01:33:21.92 ID:???.net (-2,-25,-1)
    javascriptがゴミ
    997 : Name_Not - 2018/04/18(水) 01:44:56.67 ID:???.net (+52,+29,-3)
    ひとりで何やってるの?
    998 : Name_Not - 2018/04/18(水) 02:01:23.35 ID:???.net (-1,-29,-16)
    はい、次スレ

    + JavaScript の質問用スレッド vol.133 +
    http://mevius.5ch.net/test/read.cgi/hp/1523804983/
    999 : Name_Not - 2018/04/18(水) 02:01:54.08 ID:???.net (+62,+29,-21)
    >>994
    いや、数値以外の文字が入っていても
    無視するほうがおかしいだろw
    1000 : Name_Not - 2018/04/18(水) 02:03:22.54 ID:???.net (-2,-30,-43)
    っていうか、 parseInt('123abc');
    これ123になるじゃん。
    C言語のatoiと同じ仕様なはずだぞ?
    http://hitorilife.com/atoi.php
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について