IncrementalFilter4LDRize の array.some

ざらっとしか見てないけど,インクリメンタルサーチのやつ,IF4L.searchの中の2つ目のary.forEachはary.someでもよさそう.たいした差はないけど.あと,$Xはwindow.minibuffer.$Xにあるやつ使ったらだめ?

http://twitter.com/snj14/statuses/1847303219

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Array/some

var someElementPassed = array.some(callback[, thisObject]); 
function isBigEnough(element, index, array) {
  return (element >= 10);
}
var passed = [2, 5, 8, 1, 4].some(isBigEnough);
// passed は false
passed = [12, 5, 8, 1, 4].some(isBigEnough);
// passed は true

some 知らなかった! 配列を受け取って真偽を返すのか. これってtrueを返した時点でforのループがとまるから無駄な評価をしなくていいのか。おかげでソースがスッキリしたし勉強になった

http://twitter.com/jimo1001/status/1848046309

ldrizeのパラグラフをgrep、sortとかもできたらかっこよさそう

http://b.hatena.ne.jp/fuba/20090519#bookmark-13532357


http://d.hatena.ne.jp/jimo1001/20090519

	IF4L.prototype.search = function(){
		var str = $X("id('IF4L_input')")[0].value;
		var ary = str.split(" ");
		this.nodes.forEach(function(node){
			var regFunc = function(s){
				return node.textContent.match(new RegExp(s, "i"));
			}
			node.style.display = (ary.some(regFunc)) ? "block" : "none";
		});
	}

うお、めっちゃシンプルになっとる。

	var setEvent = function(i, p){
		window.Minibuffer.addShortcutkey({
			key: 'C-c f',
			description: 'IncrementalFilter4LDRize',
			command: function(e){
				i.focus();
			}
		});

どうせショートカット決めるなら display:none と display:block & focus にすると更に良さそうだなあ。だってどうせ LDRize が ON なら有効になっているというのは自明なんだもん。