Loof

이용원·2022년 11월 4일
0

JAVASCRIPT

목록 보기
7/34

Loof 반복문

행위를 반복하게 한다.
  • for loop
  • while loop
  • for...in loop
  • for...of loop

for loop

for(초기값 설정, 조건, 초기값의 변화)

for(let i=0; i<=10; i++){
}

for(let i=0; i<=10; i+=1){
}

for...in (객체 루프)

{key:value}로 이루어진 객체 오브젝트는 반복 가능한 객체로 인식되지 않는다.
객체는 맞지만 반복 가능한 객체는 아니다.



const testScores={
    keenan:80,
    damon:67,
    kim:53,
    lee:23,
    ko:24,
    he:50,
    hu:60,

}
//객체 오브젝트에 for..of문으로 loof를 돌릴라고 하면 
//TypeError: testScores is not iterable 에러 발생
for(let person of testScores){
    console.log(person)
}

//오브젝트를 loof하기 위한 방법 1 
//for...in을 사용
fot(let 오브젝트의 키값 in for문 돌릴 오브젝트){

}

for(let person in testScores){
    // 이렇게 접근 못 함
    console.log(testScores.person) //why key값이 person이라는 변수에 담겨져 있기 때문
    
    console.log(testScores[person]) // key값에 맞는 value값이 찍힘
  
    console.log(person) // key값들이 나옴
}


//오브젝트를 loof하기 위한 방법 1 

Object.keys(키값을 얻을 오브젝트)

//메소드를 실행시키면 오브젝트의 키값들을 배열에 담아서 리턴함
console.log(Object.keys(testScores)); // ["keenan", "damon", "kim", "lee", "ko", "he", "hu"]

//Object를 사용하면 value값을 바로 얻을 수 있음.
Object.value(밸류값을 얻을 오브젝트)

//메소드를 실행시키면 벨류값들을 배열에 담아서 리턴
console.log(Object.values(testScores)); //[80, 67, 53, 23, 24, 50, 60];

//Object를 사용해서 key:value 전체를 얻을 수도 있ㄴ음
Object.entires(값을 얻을 오브젝트);

console.log(Object.entries(testScores));

[
  ["keenan", 80],
  ["damon", 67],
  ["kim", 53],
  ["lee", 23],
  ["ko", 24],
  ["he", 50],
  ["hu", 60],
];

let a = Object.entries(testScores);

console.log(a[0]) //프로터티에 접근  // [ 'keenan', 80 ]
console.log(a[0][0]) //키값에 접근 // 'keenan'
console.log(a[0][1]) //벨류값에 접근 // 80


//객체는 배열이나 문자열처럼 길이를 구할 수 없음 그래서 위에 Object로 키나 벨류를 배열에 담아서
//길이를 구할 수 있음 Object로 key나 value를 가져오면 for...in이 아니라 for..of를 써줌

//for of 함수에 넣어서 평균을 구함
let averageScore = 0;
for(let score of Object.values(testScores)){
    
    averageScore += score;

    
}
averageScore = averageScore/Object.values(testScores).length;

console.log(averageScore) // 51


//조건에 맞는 프로퍼티 삭제
const obj3 = {
    a: 2,
    b: 'remaining',
    c: 4,
  };
function removeNumberValues(obj) {
    // TODO: 여기에 코드를 작성합니다.
  
    //조건에 맞는 프로퍼티 지우기
    for(score in obj){
      
        console.log(obj[score]) // 밸류값
        console.log(typeof obj[score]) // 밸류의 type

      if(typeof obj[score] === 'number'){
  		
        //프로퍼티를 지울 때 밸류값으로 접근하여 삭제
        delete obj[score];
      }
      
    }
  
  }
  
 removeNumberValues(obj3);
 console.log(obj3); // 조건에 맞지 않은 프로퍼티만 남음 

0개의 댓글

관련 채용 정보