utils_dataset_map-dataset-to-array.js

import { getRowData } from "../../adapters/ezworks/com-api/ds";

/**
 * 제공된 데이터셋의 각 행을 순회하며 콜백의 반환값들을 담은 새로운 배열을 생성합니다.
 *
 * @function mapDatasetToArray
 * @param {nexacro.NormalDataset} dataset   - 넥사크로 데이터셋
 * @param {function}              callback  - 각 행마다 실행할 함수. (context) => any.
 * @returns {Array} 콜백의 반환값으로 구성된 배열
 * @access public
 * @memberof $f
 * @example
 * // 모든 사용자 ID를 배열로 추출
 * const userIds = $f.mapDatasetToArray(
 *     this.ds_user,
 *     ({ rowData }) => rowData["ID"],
 * );
 *
 */
export function mapDatasetToArray(dataset, callback) {
    const result = [];
    for (let i = 0; i < dataset.rowcount; i++) {
        const rowData = getRowData(dataset, i);
        result.push(
            callback({
                dataset,
                row: i,
                rowData,
            }),
        );
    }
    return result;
}