2009-07-08
IE でどこの子ノードでもないはずなのに parentNode が存在する場合がある
わけわかんないどういう事なの…。
var el = document.createElement('div');
alert(!!el.parentNode); // もちろん false
el.appendChild(document.createElement('div'));
alert(!!el.parentNode); // 子ノードがあると true
alert(el.parentNode.nodeType); // 11 DOCUMENT_FRAGMENT_NODE
な、なんだってー。暗黙的に document fragment が作られるのか…。
Scala で index つきのアクセス
Ruby でいう each_with_index 的な。zipWithIndex で index をつけて回す。
for ((v, i) <- "abcd".toCharArray zipWithIndex) { println(v, i) }
"abcd".toCharArray.zipWithIndex.foreach { x => println(x._2, x._1) }
"abcd".toCharArray.zipWithIndex.foreach { case(c, i) => println(i, c) }
最後ので case が必要なのは Tuple2 にマッチさせるためなのかな。
"abcd".toCharArray.zipWithIndex.foreach { (c, i) => println(i, c) }
とかかけるとうれしいんだけどなぁ。明日は Iterator.scala のコードを読むところから。
Scala で break ぽいこと
takeWhile 使うのか!
var continue = true
for (x <- (1 to 20).takeWhile(e => continue)) {
println(x)
continue = x < 5
}
continue = true
(1 to 20).takeWhile(e => continue).foreach { x =>
println(x)
continue = x < 5
}
参考 <- http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0810b.html#D20081020-6