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

私的良スレ書庫

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

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

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
451 : Name_Not - 2014/12/18(木) 22:01:58.41 ID:???.net (-6,-29,-5)
ヒント:企業グラマー&ユーザー
452 : Name_Not - 2014/12/18(木) 23:08:48.81 ID:???.net (+4,-28,-52)
>>450
IEのサポートが9からだから。

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

その期間を過ぎたらすぐにIE8のサポートをうちきって
いいのか?って話はあるが。
454 : Name_Not - 2014/12/19(金) 07:33:09.51 ID:???.net (+10,-29,-76)
SHIFT+ENTERのキーコードが13でENTERになっているのですが
SHIFT押しながらENTERおしたときと
単にENTERを押した時の区別って出来ますか?
456 : Name_Not - 2014/12/19(金) 10:45:26.13 ID:???.net (-8,-29,-39)
innerTextとtextContentは若干挙動が違うらしい
支障が無ければinnerHTMLを使ったほうが良いらしい
457 : Name_Not - 2014/12/19(金) 10:48:09.53 ID:???.net (+49,-13,-4)
>>454
引数を渡すようにすればその中に入ってるはずだ

http://so-zou.jp/web-app/tech/programming/javascript/event/handler/key/#no3
458 : Name_Not - 2014/12/19(金) 11:13:03.94 ID:???.net (+63,+28,-17)
>>457
そのようなプロパティがあったのですね
動作も確認いたしました
どうもありがとうございます
459 : Name_Not - 2014/12/19(金) 11:44:55.50 ID:???.net (-13,-30,-246)
>>455
まだいるか分からないけど訂正すると
.nextSibling.textContent = "bbb"; で 「bbbaaa」 になるのは、<input>と<label>の間を改行しているせいで 改行だけのテキストノードが存在から。

つまり、<input>と<label>の間を改行しなければ .nextSibling.textContent = "bbb"; で可能
例1:<input type="checkbox" id="chk1" name="chk" value="1"><label for="chk1">aaa</label>
例2:<input type="checkbox" id="chk1" name="chk" value="1"
><label for="chk1">aaa</label>

または、HTMLを変えずに、nextElementSibling.textContent = "bbb"; でもおk
460 : Name_Not - 2014/12/19(金) 13:00:46.02 ID:+jAv/pOh.net (-24,+27,+1)
>>456
>>459
ありがとうございます。
勉強になります。
462 : Name_Not - 2014/12/22(月) 22:15:17.26 ID:???.net (+15,-30,-56)
>>461
form onsubmit="script();event.preventDefault()"
input type=text
input type=submit
で、どうだ
463 : 461 - 2014/12/22(月) 22:27:49.48 ID:???.net (+46,+16,-1)
>>462
ありがとう!できました。
464 : Name_Not - 2014/12/28(日) 19:09:58.56 ID:???.net (+39,-30,-76)
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 : Name_Not - 2014/12/28(日) 22:42:49.38 ID:???.net (+47,-30,-76)
>>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 : 464 - 2014/12/28(日) 22:54:22.94 ID:???.net (+73,+29,-38)
>>465
システムの構成上配列が結構大きく、配列の長さが場合によって結構変化するので
初期に作る方法以外のものがもしあれば、と思ったのですが
やっぱり現実的にはそうなってしまうのでしょうかね・・・
467 : Name_Not - 2014/12/29(月) 00:12:26.93 ID:???.net (+46,-30,-150)
>>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 : 464 - 2014/12/29(月) 11:06:39.64 ID:???.net (+71,+29,-39)
>>467
inとかよく分かってないのでちょっとまた調べてみます。
ご丁寧に色々な案を提示して下さってありがとうございました。
469 : Name_Not - 2014/12/29(月) 12:13:37.73 ID:???.net (+46,-30,-65)
>>466
疑似配列の長さ(length)の得たいなら Object.defineProperty で出来ると思う

>>468
この場合は Object#hasOwnProperty がいいかな
470 : 464 - 2015/01/02(金) 10:45:11.06 ID:???.net (+69,+29,-42)
>>469すみません気付いていませんでした
ただ、まだ疑似配列作っていろいろするほどの力も時間も今はなさそうなので
とりあえず初期に作成する方法でやってみます
一段落したら挙げてもらったものを調べてみようと思います
ありがとうございました。
471 : Name_Not - 2015/01/05(月) 00:09:08.26 ID:vo7XD6Y+.net (+0,-30,-269)
10進数の連番IDをhash化したいと思い調べていたところ、
下記の関数を見つけました。
この関数は衝突なく安全に利用できますか?
理解できる方は、各処理の解説もして頂ければ助かります。。。


var shuffleTable = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61];

var create62Hash = function(id, shuffleTable) {
var asciiTable = [65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57];
var hashTable = new Array();
var i = 0;
do {
hashTable[i] = String.fromCharCode(asciiTable[shuffleTable[(Math.floor(id / Math.pow(62, i)) + i) % 62]]);
i = hashTable.length;
} while(Math.pow(62, i) <= id)
return hashTable.join("");
}
472 : Name_Not - 2015/01/05(月) 00:15:33.79 ID:???.net (+57,+29,-22)
引用するなら引用元のページも欠くのが最低限コードを書いた人への礼儀だぞ
473 : Name_Not - 2015/01/05(月) 00:35:44.49 ID:???.net (+52,+29,-22)
>>471
ハッシュ化したいならその関数は使えません。
なぜならハッシュ化してないからです。
474 : Name_Not - 2015/01/05(月) 00:40:43.91 ID:???.net (-6,-29,-4)
>>471
ただの10進数⇒62進数変換
475 : Name_Not - 2015/01/05(月) 00:43:52.51 ID:???.net (+57,+29,-4)
しかも無駄な処理をしていてさらに言えば遅い
476 : Name_Not - 2015/01/05(月) 00:44:07.18 ID:???.net (+91,+27,-15)
473
お前はまずハッシュの定義について勉強しなおしてこい
477 : Name_Not - 2015/01/05(月) 00:46:17.29 ID:???.net (-1,-29,-13)
暗号学的なhashもあれば、単にデータを区別する値もhashと言うよな
478 : Name_Not - 2015/01/05(月) 00:51:58.29 ID:???.net (+62,+29,-83)
何の目的に使うのか知らんが、それを読む限り、10進数を62進数にしているように見える。
若干並びを入れ替えているみたいだが。
単純すぎてパスワード保存用とかには使えないぞ。
ちゃんとしたハッシュアルゴリズムを実装すべきだと思うが。
479 : Name_Not - 2015/01/05(月) 00:58:36.82 ID:???.net (+14,-13,-32)
10進数⇒62進数変換ではなかったな。
62進数に近い何かをやってる
480 : Name_Not - 2015/01/05(月) 01:10:24.46 ID:???.net (+109,+30,-180)
>>476
これでいーですかー?w
http://e-words.jp/w/E3838FE38383E382B7E383A5E580A4.html

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

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

反論あるならどうぞ?
481 : Name_Not - 2015/01/05(月) 01:10:26.64 ID:???.net (-2,-30,-86)
これは最小完全ハッシュ関数だな
shuffleTableをその名の通りシャッフルすれば、shuffleTable毎に一意性のある値が算出されるんじゃね
ただ、確証は無い。衝突の有無は知らん
482 : Name_Not - 2015/01/05(月) 01:15:21.48 ID:???.net (+57,+29,-15)
ちなみに整数を文字列にしているので、
元のデータ量よりもハッシュ値(と称する別のもの)
の方が多くなっている。
483 : Name_Not - 2015/01/05(月) 01:18:55.95 ID:???.net (+72,+29,-36)
>>480
wikipediaくらい見てくれば?反論できないのは君の方と気付くよ
484 : Name_Not - 2015/01/05(月) 01:24:44.17 ID:???.net (+36,-30,-73)
Wikipediaの最小完全ハッシュ関数例を見てもわかるように
最小完全ハッシュ関数は、John Smith -> 1, Lisa Smith -> 0, Sam Doe -> 3, Sandra Dee -> 2
という風に、データが小さくなっているからハッシュなんですよ?

ただの進数変換もどきは逆にデータ量が大きくなっていて
なんのためにあるのかさっぱりわかりませんw
485 : Name_Not - 2015/01/05(月) 01:28:02.56 ID:???.net (+96,+29,-24)
>>484
その結果はただの例だろ
自分で自分の低脳さをさらけ出してるぞ
486 : Name_Not - 2015/01/05(月) 01:30:52.15 ID:???.net (+3,-30,-151)
なお、create62Hash(0,shuffleTable)がA
なお、create62Hash(1,shuffleTable)がB
なお、create62Hash(2,shuffleTable)がC
とハッシュにありまじき予測可能な順番で並んでいるのは
進数変換だからいいとして

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

となっており、AAじゃない所を見ると
バグってますねこれ。
487 : Name_Not - 2015/01/05(月) 01:32:05.41 ID:???.net (+102,+29,-52)
>>485
反論しろよw

例が示すものは、俺が言っているとおりだと認めてるのに、
なんで俺が低能になってるんだよw
488 : Name_Not - 2015/01/05(月) 01:33:40.74 ID:???.net (+3,-30,-48)
shuffleTableを変更すればランダムになるというのは
間違いです。

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

これもハッシュではないことの根拠の一つです。
489 : Name_Not - 2015/01/05(月) 01:36:31.86 ID:???.net (+9,-23,-68)
大元はこれ、
http://workline.xii.jp/texts/oneday_url/
> やってることは進数変換と一緒で、62進で1ケタずつ値を見て、
> それをchr()で対応する文字に変換しています。

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

やってることが進数変換なら
進数変換(+文字単純置換)です
490 : Name_Not - 2015/01/05(月) 01:39:28.25 ID:???.net (+67,+29,-30)
>>487
だからお前は理解できてないって言ってるだろ
馬鹿に間違いを指摘してるわけ
けど、馬鹿にわざわざ解説して教える気はない
491 : Name_Not - 2015/01/05(月) 01:43:05.41 ID:???.net (+51,+28,-4)
結局、何も言い返せていない(笑)
492 : Name_Not - 2015/01/05(月) 01:48:02.17 ID:???.net (+127,+29,-126)
wikipediaより
>あるデータが与えられた場合にそのデータを代表する数値を得る操作、
>または、その様な数値を得るための関数のこと。ハッシュ関数から得られた数値のことを要約値やハッシュ値または単にハッシュという。

と定義されてる
つまり、データとハッシュ値が結びつくなら固定長である必要も、元の文字より大きくなっても問題ない
単なる進数変換でも広い意味でハッシュと言える
493 : Name_Not - 2015/01/05(月) 01:50:50.07 ID:???.net (+70,+29,-23)
>>492
完全論破ワロタ
このスレにはwikipediaの最初の文も読めない奴がいるのか・・・
494 : Name_Not - 2015/01/05(月) 01:51:48.96 ID:???.net (+68,+6,-14)
> あるデータが与えられた場合にそのデータを代表する【数値を】

数値ではないのでハッシュ変換ではありません
495 : Name_Not - 2015/01/05(月) 01:52:28.71 ID:???.net (+68,+23,-16)
>>492-493
バレバレな自作自演をみたw
496 : Name_Not - 2015/01/05(月) 01:53:07.88 ID:???.net (+97,+29,-26)
>>494
>>471 の関数は数字を出して、それを文字に置き換えてるでしょ
そんな事もわかってないの?
497 : Name_Not - 2015/01/05(月) 01:56:18.97 ID:???.net (+104,+29,-36)
>>496
数字じゃなくて数値な。
数字というのは数の並び。そこに大小の順番はない。
数値というのは、大小の順番があるもの
違いぐらいわかろうぜ。
498 : Name_Not - 2015/01/05(月) 01:57:05.53 ID:???.net (+71,+29,-9)
>>497
じゃあ訂正する、数値ね
それで、反論は?
499 : Name_Not - 2015/01/05(月) 02:04:25.06 ID:???.net (+32,-29,-30)
create62Hashは入力された引数の数値を
何の処理もせずに、単純に文字列に進数変換しているので
ハッシュ処理としては何もしていません。
500 : Name_Not - 2015/01/05(月) 02:10:35.34 ID:???.net (+55,+29,-17)
499
定義の範囲内でハッシュと呼べるけど?
反論出来てない
間違いを認められないと本当の馬鹿だぞ
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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