1// @ts-check 2 3/** I. 기본 ì ë³´ 4 * ========================================== 5 * <News Box Data Filter> 6 * 7 * Author: Innobaebae Co. 8 * Created: 2025-01-31 9 * Version: 1.0.0 10 * 11 * ========================================== 12 * 13 * 1. 목ì : 14 * í ì íì ë°ë¥¸ ë°ì´í° íí°ë§ ë¡ì§ 15 * 16 * 2. í¹ì§: 17 * - ìì í¨ì (ì¬ì´ë ì´íí¸ ìì) 18 * - ì¹´í ê³ ë¦¬ ê¸°ë° íí°ë§ 19 */ 20 21/** 22 * í íí°ì ë°ë¼ ë°ì´í° íí°ë§ 23 * @param {Array} data - ì ì²´ ë°ì´í° ë°°ì´ 24 * @param {string|null} filter - íí° ë¬¸ìì´ (nullì´ë©´ ì ì²´) 25 * @returns {Array} - íí°ë§ë ë°ì´í° 26 */ 27export function filterDataByTab(data, filter) { 28 // filterê° nullì´ë©´ ì ì²´ ë°ì´í° ë°í 29 if (!filter) { 30 return data; 31 } 32 33 // ì¹´í ê³ ë¦¬ê° íí° ë¬¸ìì´ì í¬í¨íë íëª©ë§ ë°í 34 return data.filter(item => { 35 const category = item.cate || ''; 36 return category.includes(filter); 37 }); 38} 39 40/** 41 * ë°ì´í° ê²ì¦ ë° ì ê·í 42 * @param {any} data - ê²ì¦í ë°ì´í° 43 * @returns {Array} - ì ê·íë ë°°ì´ ë°ì´í° 44 */ 45export function validateData(data) { 46 // ë°°ì´ì´ ìëë©´ ë¹ ë°°ì´ ë°í 47 if (!Array.isArray(data)) { 48 console.warn('[news-box] ë°ì´í°ê° ë°°ì´ì´ ìëëë¤:', data); 49 return []; 50 } 51 52 // íì íë ê²ì¦ 53 return data.filter(item => { 54 const hasSeq = item.seq !== undefined && item.seq !== null; 55 const hasTitle = typeof item.title === 'string' && item.title.trim() !== ''; 56 const hasDate = typeof item.regdate === 'string' && item.regdate.trim() !== ''; 57 58 if (!hasSeq || !hasTitle || !hasDate) { 59 console.warn('[news-box] íì íë ëë½:', item); 60 return false; 61 } 62 63 return true; 64 }); 65}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.