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

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

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

    >>450
    IEのサポートが9からだから。

    IE8のサポート期間が2016年1月12日だから
    あと1年は対応が必須。

    その期間を過ぎたらすぐにIE8のサポートをうちきって
    いいのか?って話はあるが。

    454 = :

    SHIFT+ENTERのキーコードが13でENTERになっているのですが
    SHIFT押しながらENTERおしたときと
    単にENTERを押した時の区別って出来ますか?

    457 = :

    >>454
    引数を渡すようにすればその中に入ってるはずだ

    http://so-zou.jp/web-app/tech/programming/javascript/event/handler/key/#no3

    458 = :

    >>457
    そのようなプロパティがあったのですね
    動作も確認いたしました
    どうもありがとうございます

    462 = :

    >>461
    form onsubmit="script();event.preventDefault()"
    input type=text
    input type=submit
    で、どうだ

    463 = :

    >>462
    ありがとう!できました。

    464 = :

    var a = new Array1();
    a[3].x = 1;
    a[7].y = 2;
    上のようにできる、プロパティの付いた配列のクラスらしきものを実現したいのですが
    どのようにすればできるでしょうか?
    変数のプロパティだけでいいなら
    var foo = new Foo();
    function Foo()
    {
    this.x = null;
    this.y = null;
    }
    みたいな感じにはなると思うのですが・・・

    465 = :

    >>464
    配列の初期長を決めて、あらかじめインスタンスを必要個数分だけ作っておくのはどう?
    function Foo(){
    this.x = null; this.y = null;
    }
    function Array1(len){
    for(var i=0;i<len;i++) this[i] = new Foo();
    }
    var a = new Array1(8); //[0]~[7]のFooのインスタンス配列
    a[3].x = 1;
    a[7].y = 2;

    466 = :

    >>465
    システムの構成上配列が結構大きく、配列の長さが場合によって結構変化するので
    初期に作る方法以外のものがもしあれば、と思ったのですが
    やっぱり現実的にはそうなってしまうのでしょうかね・・・

    467 = :

    >>466
    なるほど、配列の長さが変化するのなら、>>465はオススメできないね

    その条件なら、毎回正直にインスタンスを作るのが普通だろうなあ
    function Foo(){
    this.x = null; this.y = null;
    }
    var a = new Array(); //ただの配列
    if(!(3 in a)) a[3] = new Foo();
    a[3].x = 1;
    if(!(7 in a)) a[7] = new Foo();
    a[7].y = 2;
    この処理は面倒だから関数化するといいかも

    あるいは、配列でなくていいなら一次元的に格納するか
    var a = new Object(); //ただのオブジェクト
    a["3x"] = 1;
    a["7y"] = 2;

    あるいは、Firefox限定で構わないなら、Proxyを使うという方法もある

    468 = :

    >>467
    inとかよく分かってないのでちょっとまた調べてみます。
    ご丁寧に色々な案を提示して下さってありがとうございました。

    469 = :

    >>466
    疑似配列の長さ(length)の得たいなら Object.defineProperty で出来ると思う

    >>468
    この場合は Object#hasOwnProperty がいいかな

    470 = :

    >>469すみません気付いていませんでした
    ただ、まだ疑似配列作っていろいろするほどの力も時間も今はなさそうなので
    とりあえず初期に作成する方法でやってみます
    一段落したら挙げてもらったものを調べてみようと思います
    ありがとうございました。

    472 = :

    引用するなら引用元のページも欠くのが最低限コードを書いた人への礼儀だぞ

    473 = :

    >>471
    ハッシュ化したいならその関数は使えません。
    なぜならハッシュ化してないからです。

    475 = :

    しかも無駄な処理をしていてさらに言えば遅い

    476 = :

    473
    お前はまずハッシュの定義について勉強しなおしてこい

    478 = :

    何の目的に使うのか知らんが、それを読む限り、10進数を62進数にしているように見える。
    若干並びを入れ替えているみたいだが。
    単純すぎてパスワード保存用とかには使えないぞ。
    ちゃんとしたハッシュアルゴリズムを実装すべきだと思うが。

    479 = :

    10進数⇒62進数変換ではなかったな。
    62進数に近い何かをやってる

    480 = :

    >>476
    これでいーですかー?w
    http://e-words.jp/w/E3838FE38383E382B7E383A5E580A4.html

    > 元になるデータから一定の計算手順により求められた、【規則性のない固定長の値。】
    > その性質から暗号や認証、データ構造などに応用されている。ハッシュ値を求めるための
    > 計算手順のことをハッシュ関数、要約関数、メッセージダイジェスト関数などという。
    >
    > 【ハッシュ値は元のデータの長さによらず一定の長さとなっており】、同じデータからは必ず同じハッシュ値が得られる一方、
    > 【少しでも異なるデータからはまったく異なるハッシュ値が得られる。】
    > 【不可逆で情報量の欠損を含む計算過程を経るため、ハッシュ値から元のデータを復元することはできない。】
    >
    > また、【元のデータよりハッシュ値の方が短い場合(実用上はほとんどの場合が該当する)】、
    > 複数の異なるデータから同じハッシュ値が生成される(ハッシュ値の衝突)ことになるが、
    > あるデータとそのハッシュ値から、【同じハッシュ値を持つ別のデータを効率よく探索することはできない。】

    よってハッシュではありません。

    反論あるならどうぞ?

    482 = :

    ちなみに整数を文字列にしているので、
    元のデータ量よりもハッシュ値(と称する別のもの)
    の方が多くなっている。

    483 = :

    >>480
    wikipediaくらい見てくれば?反論できないのは君の方と気付くよ

    484 = :

    Wikipediaの最小完全ハッシュ関数例を見てもわかるように
    最小完全ハッシュ関数は、John Smith -> 1, Lisa Smith -> 0, Sam Doe -> 3, Sandra Dee -> 2
    という風に、データが小さくなっているからハッシュなんですよ?

    ただの進数変換もどきは逆にデータ量が大きくなっていて
    なんのためにあるのかさっぱりわかりませんw

    485 = :

    >>484
    その結果はただの例だろ
    自分で自分の低脳さをさらけ出してるぞ

    486 = :

    なお、create62Hash(0,shuffleTable)がA
    なお、create62Hash(1,shuffleTable)がB
    なお、create62Hash(2,shuffleTable)がC
    とハッシュにありまじき予測可能な順番で並んでいるのは
    進数変換だからいいとして

    create62Hash(61,shuffleTable)が9
    create62Hash(62,shuffleTable)がAC

    となっており、AAじゃない所を見ると
    バグってますねこれ。

    487 = :

    >>485
    反論しろよw

    例が示すものは、俺が言っているとおりだと認めてるのに、
    なんで俺が低能になってるんだよw

    488 = :

    shuffleTableを変更すればランダムになるというのは
    間違いです。

    0~9、A-Z、a-zの文字がそれぞれ置き換わるだけで、
    順番はランダムになっていません。

    これもハッシュではないことの根拠の一つです。

    489 = :

    大元はこれ、
    http://workline.xii.jp/texts/oneday_url/
    > やってることは進数変換と一緒で、62進で1ケタずつ値を見て、
    > それをchr()で対応する文字に変換しています。

    やってることは進数変換と一緒と書いてあるとおり
    名前がおかしいだけの話です。

    やってることが進数変換なら
    進数変換(+文字単純置換)です

    490 = :

    >>487
    だからお前は理解できてないって言ってるだろ
    馬鹿に間違いを指摘してるわけ
    けど、馬鹿にわざわざ解説して教える気はない

    491 = :

    結局、何も言い返せていない(笑)

    492 = :

    wikipediaより
    >あるデータが与えられた場合にそのデータを代表する数値を得る操作、
    >または、その様な数値を得るための関数のこと。ハッシュ関数から得られた数値のことを要約値やハッシュ値または単にハッシュという。

    と定義されてる
    つまり、データとハッシュ値が結びつくなら固定長である必要も、元の文字より大きくなっても問題ない
    単なる進数変換でも広い意味でハッシュと言える

    493 = :

    >>492
    完全論破ワロタ
    このスレにはwikipediaの最初の文も読めない奴がいるのか・・・

    494 = :

    > あるデータが与えられた場合にそのデータを代表する【数値を】

    数値ではないのでハッシュ変換ではありません

    495 = :

    >>492-493
    バレバレな自作自演をみたw

    496 = :

    >>494
    >>471 の関数は数字を出して、それを文字に置き換えてるでしょ
    そんな事もわかってないの?

    497 = :

    >>496
    数字じゃなくて数値な。
    数字というのは数の並び。そこに大小の順番はない。
    数値というのは、大小の順番があるもの
    違いぐらいわかろうぜ。

    498 = :

    >>497
    じゃあ訂正する、数値ね
    それで、反論は?

    499 = :

    create62Hashは入力された引数の数値を
    何の処理もせずに、単純に文字列に進数変換しているので
    ハッシュ処理としては何もしていません。

    500 = :

    499
    定義の範囲内でハッシュと呼べるけど?
    反論出来てない
    間違いを認められないと本当の馬鹿だぞ


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

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


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