このあいだHTMLのソースを見たらバージョン違いのjQueryが3つも入ってて閉口したtakuyaです。今日は。
jQuery#map jQeuery#eachの代替forEach
jQueryにはmap/eachでArray#map がなくても安心できた。
jQuery.map([1,2,3,4,5], function(e){ return 2*e-1}) #=> [1,3,5,7,9]
そもそも jQuery#map が知られてないので辛い所ある。
もちろん、これらはArray.forEach, Array.map で代替できる
> [1,2,3,4,5].map( function(e){ return 2*e-1}) #=>[ 1, 3, 5, 7, 9 ]
いまどき for 使ってるプログラマはどうぞ消えて、、、
せめて無理ならまずはjQuery.each だけでも・・・
for each/ for .. in / for .. of / for comprehension に切り替えてくれたら
querySelector/querySelectorAllの採用
element = document.querySelector( selectors );
querySelectorAllはNodeListを返す
querySelectorAllの戻り値はnullは NodeListになる。
NodelistはNodelistなのでArrayと同じようにIndexアクセスきるが、forEachはない。
ret = document.querySelectorAll("a"); ret[0] ret.forEach #=> undefined
対策1 NodeListをArrayに変換する
a = Array.apply(null, ret)
対策2 foreachをコピーする
ret.forEach = Array.prototype.forEach ret.forEach(function(entry, index) { console.log(entry) } )
HTML属性
attr()の代替
Node.attributes a.href a["href"] a.classlist
など。