A Day in the Life

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

記事の一覧 >