closure javascript

by cesar nieto

JavaScript

function sum(x){
  return function(y){
    return x+y
  }
}

/* console.log(sum(2)(3)); */


const peopleArray = [
  { id: 123, name: "dave", age: 23 },
  { id: 456, name: "chris", age: 23 },
  { id: 789, name: "bob", age: 23 },
  { id: 101, name: "tom", age: 23 },
  { id: 102, name: "tim", age: 23 }
]

const arr2Obj = (array)=>
	array.reduce((obj,item)=>{
  	obj[item.id] = item
    return obj
  },{})
  
const peopleObject = arr2Obj(peopleArray);
/* console.log(peopleObject[101]); */
  
const obj2arr = Object.values(peopleObject);
/* console.log(obj2arr); */




var contador = (function(){
	var _cnt = 0;
  function cambio(val){
  	_cnt += val;
  }
  return{
  	inc : function(){
    	cambio(1);
    },
    dec : function(data){
    	cambio(data);
    },
    final : function(){
    	return _cnt;
    }
  }
})();


contador.inc(+5);
contador.dec(-3);
contador.inc(5);

/* contador.dec(-10); */

console.log(contador.final());