filter
var data = [5,6,7,8];
var result = data.filter(function(value,index,array){
return value <= 6;
});
console.log(result);//[5, 6]
// 要素にクラス名が存在するかどうかを判定する関数
function hasClass(element, className) {
if ('classList' in element) {
return element.classList.contains(className);
}
// classList.containsが使えない場合の代替処理
return (' ' + element.className + ' ')
.replace(/[\n\t]/g, ' ')
.indexOf(' ' + className + ' ') !== -1;
}
// アコーディオンが開いているかどうかを判定する関数
function isOpened(element) {
return hasClass(element, '-opened');
}
var accordions = document.querySelectorAll('.accordion');
// call()を介して、NodeListでArray.prototype.filter()を呼び出す
var openedAccordions = Array.prototype.filter.call(accordions, isOpened);
console.log(openedAccordions);
// [div.accordion.-opened, div.accordion.-opened]
openedAccordions.forEach(function (openedAccordion) {
console.log(openedAccordion);
});
// <div class="accordion -opened">bar</div>
// <div class="accordion -opened">baz</div>
// 値が偶数かどうかをtrueかfalseで返す関数(2で割った余りが0であれば偶数)
function isEven(value) {
return value % 2 === 0;
}
var array = [1, 2, 3, 4, 5];
var evens = array.filter(isEven);
console.log(evens);
// [2, 4]