may88seiji
6/9/2017 - 11:56 AM

filter

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]