Kanasan.js サイ読#6
雨が止むのを待って出かけたため昼から参加。ヘタレすぎる。
"name" of img/applet
知らなかった。レガシーDOMって残しとく意味無さそう。
sorting algorithms
Rhinoがわざわざヒープソートを実装してる*1のは SM-C からそのまま持ってきたからだろか。実装別の表を作ろうかと一瞬だけ考えたが面倒な上 nanto さんと被りそうなので自粛。
via Lingr
IEしか知らなかった頃に重宝していた覚えが。
elm.parentNode.replaceChild(document.createElement('br'), elm); /* ↓ */ elm.outerHTML = '<br/>';
DOM が不便過ぎるだけとも言う。
Array.sortBy = (function(cmp, I){ return function sortBy(arr, fun){ var sorter = [], fun = fun || I, i = arr.length, j = i; if(i !== Math.ceil(Math.abs(i))) throw new TypeError('Not Array-like.'); while(i--) sorter[i] = {key: fun(arr[i], i, arr), val: arr[i]}; sorter.sort(cmp); while(j--) sorter[j] = sorter[j].val; return sorter; }}(function(a, b){ return a.key < b.key ? -1 : +(a.key > b.key) }, function(x){ return x }));
こんなでも prototype.js のよりはマシか。p337 15-5 を書き換えてみる。
<ul id='list'><li>one</li><li>two</li><li>three</li><li>four</li></ul> <script src='sortBy.js'></script> <script><!-- function sortKids(e){ if(typeof e === 'string') e = document.getElementById(e); var es = Array.sortBy(e.childNodes, function(x){ return x.innerHTML }); for(var l = es.length, i = -1; ++i < l;) e.appendChild(es[i]); } sortKids('list'); --></script>
?
- Photo Booth って鏡として使うアプリ?
- Kanasan.JS → Kansai.JS ?
*1:最新版でもヒプソのまま ftp://ftp.mozilla.org/pub/mozilla.org/js/