본문 바로가기
카테고리 없음

array filter

by keisoft 2024. 10. 17.
let s = chartoption.series[0];
let di = s.datasetindex;
let dataset = chartoption.dataset[di];
let xname = s.encode.x;
let yname = s.encode.y;
let xi = dataset.dimensions.indexOf(xname);
let yi = dataset.dimensions.indexOf(yname);

// Date 객체를 한 번만 생성
const minDate = new Date(xmin);
const maxDate = new Date(xmax);

const selRows = new Set();
const selDatas = dataset.source.filter((row, idx) => {
    const rowkey = `${di}_${idx}`;
    if (selRows.has(rowkey)) return false;

    const xv = new Date(row[xi]);
    const yv = row[yi];

    if (xv >= minDate && xv <= maxDate && yv >= ymin && yv <= ymax) {
        selRows.add(rowkey);
        return true;
    }
    return false;
});