query, queryToObject

Jiwontwopunch·2022년 5월 25일
0

독학

목록 보기
73/102
post-thumbnail

query

const obj1={
  a:1,
  b:undefined,
  c:'CC',
  d:'DD'
};

// a=1&c=CC&d=DD
// 방법 1
function query1(obj){
  let res='';
  for(const k of obj){
    const v=obj[k];
    if(v===undefined) continue;
    if(res!-'') res+='&';
    res+=k+'='+v;
  }
  return res;
}
console.log(query1(obj1));

// 방법 2
function query2(obj){
  return(
    // _.filter 대신에 _.reject 사용 가능
    _.reject(([k,v])=>v!==undefined,
    Object.entries(obj)));
}
console.log(query2(obj1));

// 방법 3
function query3=obj=>_.go(
  obj,
  Object.entries,
  _.reject(([_,v])=>v===undefined,
  _.map(join('=')),
  join('&')
  );
  console.log(query3(obj1));

queryToObject

const split= _.curry(sep,str)=>str.split(sep));
const queryToObject= _.pipe(
  split('&'),
  );
console.log(queryToObject('a=1&c=CC&d=DD'));
// (3) ["a=1", "c=CC", "d=DD" ] 

0개의 댓글