javascript iteration 함수 연습

/*첫날*/

var companies = [
{‘name’:’apple’,’country’:’USA’}
,{‘name’:’samsung’,’country’:’KOREA’}
,{‘name’:’sony’,’country’:’JAPAN’}
,{‘name’:’lg’,’country’:’KOREA’}
]
var rslt = “”;

//1. forEach 예제

companies.forEach(function(element, index, array) {
console.log(“a[” + index + “] = ” + element.name);
});

결과
a[0] = apple
a[1] = samsung
a[2] = sony
a[3] = lg

//2. map + join 단순예제

rslt = companies.map(function(element, index, array){
return element.name;
}).join(‘,’);
console.log(“전체 회사의 목록입니다. : ” + rslt);

결과
전체 회사의 목록입니다. : apple,samsung,sony,lg

//3. some 예제

rslt = companies.some(function(element, index, array){
return element.name==’apple’;
});
console.log(“apple 도 있습니까? > ” + rslt);

결과
apple 도 있습니까? > true

//4. every 예제

rslt = companies.every(function(element, index, array){
return element.name==’apple’;
});
console.log(“모두 apple 입니까? > ” + rslt);

결과
모두 apple 입니까? > false

//5. map , join 인데 조건주기 헛… 근데.. 이쁘지가 않아..

rslt = companies.map(function(element, index, array){
if(element.country===”KOREA”) return element.name;
}).join(‘,’);
console.log(“국적이 KOREA 인 회사의 목록입니다. ” + rslt);

결과
국적이 KOREA 인 회사의 목록입니다. ,samsung,,lg

//6.filter 로 해결 – 에 조건을 줘서 돌리기보다 filter 를 써서 참인것만 받는게 낫네 , 맵은 그냥 전체 배열의 element 를 대상으로 어떤 실행을 해주는것(apply) 이 맞는거 같음

rslt = companies.filter(function(element, index, array){
return element.country===”KOREA”;
}).map(function(element){
//json 을 리턴하니까 회사명만 발라내기
return element.name;
}).join(“,”);
console.log(“국적이 KOREA 인 회사의 목록입니다. ” + rslt);

결과
국적이 KOREA 인 회사의 목록입니다. samsung,lg

//7. reduce – 전체를 대상으로 한개의값을 리턴 reduced map 또는 map Reduced 로 nosql 쪽에서 많이 적용. 근데 node 에서는 sum 빼놓고 어디 써야 할지 모르겠음

소스
var a = [1,2,3,4,5,6,7,8,9];
var i = 0;
a.reduce(function(prev,curr){
console.log((i++).toString() + “:” + prev.toString() + ” : ” + curr.toString());
return prev + curr;
},100);  <– 요 100은 합계에 초기값

//8. 넣기 빼기 pop , push , shift unshift

console.log(companies);
console.log(companies.shift()); //머리에서 빼옴
console.log(companies);
companies.unshift(‘unshift’); //머리에다 넣음
console.log(companies);
console.log(companies.pop()); //뒤에서 빼옴
console.log(companies);
companies.push(‘push’); //뒤로 넣음
console.log(companies);

sort , concat , indexOf , slice , splice

  • Facebook
  • Google Plus
  • Twitter
  • LinkedIn
  • Pinterest
  • Tumblr
  • Instapaper
  • Delicious