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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter

951 = :

>>950
次スレはよ

952 = :

配列に配列を破壊的に追加したい場合
Array.prototype.push.apply(array,array1)
とやりますが、
これと同じことをやる関数はlodashにないのでしょうか?
こういう書き方はシンプルじゃないので、
こういうのこそlodashにあって欲しいのですが見当たりません
他のやり方があるのでしょうか?

953 = :

javascriptで作ってもらったウェブアプリの出来がいいかわるいか
どのあたりを見てどうやって判断すればいいんでしょうか?

954 = :

>>952
いや、lodashは関数型っぽくするライブラリだから
破壊的なメソッドの方が違和感あるよ
ただの便利ツールじゃないんだからさ
そこの所は認識間違ってるので訂正しておいてね

955 = :

>>952 array.push(...array1)でいいじゃない
>>953 全部を見て君が素直にどう感じるか

956 = :

回答ありがとうございます

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

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

ありがとうございました

957 :

chromeで画像検索結果等から、画像を自PCにダウンロードして自分のブログへ画像アップロード
というような画像アップロード簡易プログラムといったものを作成したいと思っています。

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

PHPで自分のブログに画像をアップロードする、というものは一応できたのですが、
chromeで画像のURLを取得するといった、
ブラウザ上の処理はjavascriptと思うのですが、
javascriptでもしURLを取得できたとしても、PHPの側に変数をどう受け渡せばよいのか
調べてもはっきりわからない状態です
そもそもの言語も大体javascriptとかPHPあたりでよいと思うのですが、
どうすればうまくいきますでしょうか…。

958 = :

無断転載しちゃうんだ

959 = 957 :

>>958
いえ、認められているフリー素材のみです!!


javascriptでサーバーにアップロードうんぬんというそういうものは出来ないし、
PHPでブラウザ上のものを色々操作したりデータ取得等できないし、
ここをどう融合するのか…という
クリップボードを利用して変数の出し入れ、など思ったのですが
そこもよく分からず・・
しかし、画像右クリック、デスクトップ等に保存、
それぞれの自分のブログで画像アップロードボタン系を押して、画像を選択して、
などここは絶対にプログラミングの知識がすごく使える場面だと思うのですが…。

960 = :

//JS側
fetch('PHPのURL', {
method: 'POST',
mode: 'cors',
body: new URLSearchParams({url: '画像のURL'}),
});

//PHP側
header("Access-Control-Allow-Origin: *");
$_POST['url']; //これが画像URL

961 :

>>953
変数名や関数名に一貫性があるかとか

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

メンテしやすいかどうかとかムード。

962 = :

javascripter()らしいお粗末な回答どうもw

963 = :

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 = :

>>957-959
スクレイピングは、Ruby で、Selenium WebDriver を使う。
静的なページなら、Mechanize

ブラウザで、ページの画像を右クリックすると、画像のURL がわかるとかは、
ブラウザのプラグインを使わないと無理だろ

965 = :

>>963
こういう、1行ずつ説明していない、日記のような、
他人に教えていない、サイトを見たらダメ

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

他のサイトを見て、1行ずつ自分で書いて、実行して確かめながら、勉強すべし

966 = :

下のコードを実行すると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 = :

>>963
dispっていうのはおそらくdisplayの略
画面に表示されている文字列
valっていうのはおそらくvalueの略
現在入力した文字

> disp = disp + val;

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

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

>>965も言ってるけど、これは自分で勉強して、こんなの作ってみましたって
だけなんで勉強には不適切

968 = :

どうしても動きを知りたいならローカルで実行するとか、
http://jsbin.com/ とかhttp://jsfiddle.net/ とかに貼り付けて
書き換えて違いを見てみたら?

969 = :

>>966
ちなみに公開とかするコードじゃないので自分の環境だけでできればいいです。

970 = :

>>966
>どうすればいいのでしょう?

7万も再帰させない方法を考えればいいでしょう

971 = :

>>961
同意
設計まで踏み込まにゃならんからな

逆にいえば一目見ただけで判断出す奴は
歴史に残る程の大天才か、もしくは人間未満のクズ

972 = :

>>966
JavaScript には、末尾再帰が無いのか?

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

それか、スタックサイズを大きく設定するとか。
ただし、swap が起きて、すごく遅くなるかも

973 = :

>>971
出来の良さにコードの質は関係ないよ
逆にコードの質が良いことをアプリの出来が良いとは消して言わない

974 = :

>>972
あるがまだSafariくらいしか実装していない

975 = :

ecmaの仕様に入ったから末尾再帰はいずれすべてのブラウザに実装されるがあえて言いたい。
末尾再帰は甘え。
なぜ末尾再帰にするのか?
それはブラウザでループに置き換えられるから。
そんな志と抽象レベルの低いこと考えながら使うくらいなら再帰なんてやめちまえ。
再帰はアルゴリズムをスマートに書き表せるから素晴らしいのだ。
forループに変換できるかどうかは関係ない。
それが目的なら最初からfor書け。

976 = :

要らないところでむやみやたらに再帰使っても可読性が落ちるだけ

977 = :

フォルダ内のサブディレクトリ含むすべてのファイルの列挙とか、ツリー構造扱うときは再帰使わないと逆に分かりにくい。
何でもかんでも可読性が落ちると言ってるバカは自分が理解できないから貶めてるだけ。
分からないのお前だけだよw

978 = :

コード中のハンドラ登録部分が探しにくいのですが
いい方法はありませんか?
だらだら長いメソッドチェーンになって関数単位になっているわけではないので
何で検索したらいいのか?ってなります

979 = :

なれると再帰による反復のほうがシンプルで読みやすいのに

980 = :

なれるも慣れないも再起なんて意識するようなものではないと思うがな

981 = :

くっだらないマウントw
意識しなくてよかったならわざわざ言うまでもない。
慣れなかったなら慣れればいいだけ。
それだけのこと。
俺様は賢いから慣れるもなにも意識したことなんてない!ないんだ!聞いて聞いて!誉めて讃えてーっ、てかwww

982 :

>>977
それは「再帰しなきゃできない」じゃない?

あれ?できるか、まぁ泥臭いこと書きたい初心者はほっときましょう。

983 = 982 :

>>980
そりゃ980は頭いいのかもしれないけどな

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

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

あと三項演算子とか正規表現

984 = :

JavaなりCなりどっちだったか忘れたけど
サブディレクトリ漁りとかで再帰覚えたっけな

JavaScriptだと……なんかいい例が思いつかん
入口がJavaScriptだと再帰を勉強する材料が少ないのかも

985 = :

>>965
>>967
ありがとうございます
自分で1から考え直しているのですが、

var operatpr に"+"や"x"を入れた際に、
switch(operator)
とやるのは面倒くさいので、
ans = parseInt(disp) operator parseInt(disp)
みたいにする方法有りませんかね?

986 = :

>>985
追記
文字列で全部連結してevalで実行するような感じです(ただ、evalは使いたくないです)

987 = :

動的型付言語ウザすぎる
Int型じゃねーのかよお前死ね

989 = :

文字列は文字列で
parseInt("0"+variable, 10)なんてキモい書き方しないとNaNになるクソ言語

990 = :

>>957
あえて省いてるのかも知れんけど
もし拡張機能の使用を前提にしてるならそう書かないと答えようが無いよ

992 = :

parseInt('123'); // int 123 妥当
parseInt('0123'); // int 123 わかる 頭が0な文字列でも第2引数省略しても8進数扱いされなくなった
parseInt('abc'); // NaN わかりたくないけど、100歩譲ってわかるとしておこう
parseInt('abc123'); // NaN クソが
parseInt(''); // NaN shine

993 = :

よく分からんが、abcという文字列も数値に変換しろ!
って言ってんのか?

994 = :

c++やjavaで文字列値・整数値のキャストに面倒があっても許容できる
php 柔軟
js クソ

995 = :

jsは動的なのがそもそもゴミ
キャストが面倒くさいのもゴミ

997 = :

ひとりで何やってるの?

999 = :

>>994
いや、数値以外の文字が入っていても
無視するほうがおかしいだろw


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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