본문 바로가기

Slack 채널 정리

js - 배열에 들어있는 Object Literal의 값으로 연산하는 함수

작업하면서 짰던거 그냥 공유 차원에서 ...

data = [{C1: 5, C2: 6, C3: 4}, {C1: 4, C2: 7, C3: 3}] 
c1 = ["C1", "C2", "C3"];add = function (a, b) {
   return a + b;
}
cellCalc(data, c1, add, 0);calc1 = function (a, b, i) {
   if(c2.indexOf("C2") === i) 
     return a * b;
   else
     return a + b;
}cellCalc(data, c1, calc1, 1);

cellCalc = function(objArr, colNames, func, initVal) {
  return objArr.map(function(a) {
    return colNames.map(function(key) {
       return (a[key] *= 1);
    }).reduce(func, initVal);
  });
}