자바스크립트에서 for 루프 문을 가지고 놀기.
13616 단어 beginnersjavascriptapidiscuss
3개의 for 문 루프를 살펴보겠습니다.
재미로 PokéAPI( https://pokeapi.co/ )를 사용하고 있습니다. 포켓몬 이름을 가져오고 반복할 수 있는 사용하기 쉽고 재미있는 API입니다 🚀
다음과 같이 API 호출을 할 수 있습니다.
const axios = require('axios')
const baseURL = `https://pokeapi.co/api/v2`
async function obterPokemon() {
const request = await axios.get(`${baseURL}/pokemon/?limit=150`)
const pokemons = request.data.results
return pokemons
}
console.log(pokemons)
를 전달하면 API가 객체 배열을 반환하는 것을 볼 수 있습니다. 예를 들면 다음과 같습니다.[
{ name: 'bulbasaur', url: 'https://pokeapi.co/api/v2/pokemon/1/' },
{ name: 'ivysaur', url: 'https://pokeapi.co/api/v2/pokemon/2/' },
{ name: 'venusaur', url: 'https://pokeapi.co/api/v2/pokemon/3/' },
{ name: 'charmander', url: 'https://pokeapi.co/api/v2/pokemon/4/' },
{ name: 'charmeleon', url: 'https://pokeapi.co/api/v2/pokemon/5/' },
... 145 more items
]
...
오늘 우리의 임무는 3개의 고유한 "FORS"를 사용하여 이 배열을 반복하는 것입니다.
을 위한
Sintax
for ([initialization]; [condition]; [final expression])
{declaration}
for 루프 문은 3개의 선택적 표현식과 필수 선언으로 구성된 루프를 생성합니다.
초기화
일반적으로 예를 들어
let i = 0
와 같이 초기 값이 있는 var로 표시됩니다.상태
이 부분은 일반적으로 초기화 객체(이 경우 "i")와 배열 또는 0보다 큰 숫자
i <= array.length
로 표시되는 코드 실행을 유지하거나 중단하는 역할을 합니다.최종 표현
이 사람들은 일반적으로
i++
ou i--
로 표시되는 전달되는 항목에 따라 루프 번호를 위 또는 아래로 만듭니다.선언
이 부분에서 루프가 끝날 때까지 실행될 조건을 전달할 수 있습니다. for 문 다음에 대괄호 안에 전달해야 합니다.
....
코드로 이동합시다! 여기서 우리는 전통적인 "for"를 사용하여 약간의 반복을 할 것입니다.
async function getPokemons() {
const request = await axios.get(`${baseURL}/pokemon/?limit=150`)
const pokemons = request.data.results
console.time('FOR - RUNTIME')
const pokemonNames = []
for (let i = 0; i < pokemons.length; i++) {
pokemonNames.push(pokemons[i].name)
}
console.log(pokemonNames)
console.timeEnd('FOR - RUNTIME')
}
getPokemons()
터미널에서 반환
I did 5 tests and they all took about 13ms with an average of 13.749ms
안으로
Sintax
for (variable in object) {...}
FOR IN 루프는 객체의 열거된 속성 위에서 동일한 삽입 순서로 상호 작용합니다. 나는 FOR과 거의 동일하지만 sintax가 사용하기에 더 깨끗합니다. 여기에는 선언 외에 2개의 매개변수만 있습니다.
변하기 쉬운
쉽고, 개체의 "고유한"속성을 나타냅니다.
물체
반복하려는 객체입니다.
...
동일한 배열로 위에서 수행한 것과 동일한 반복을 수행하지만 FOR IN을 사용합니다.
async function getPokemons() {
const request = await axios.get(`${baseURL}/pokemon/?limit=150`)
const pokemons = request.data.results
console.time('FOR IN - RUNTIME')
const pokemonNames = []
for (let i in pokemons) {
pokemonNames.push(pokemons[i].name)
}
console.log(pokemonNames)
console.timeEnd('FOR IN - RUNTIME')
}
getPokemons()
터미널에서 반환
I did 5 tests and they all took about 13ms with an average of 13.431ms
~을 위해
Sintax
for (variable of iterable) {declaration}
FOR OF 루프는 더 많은 유형의 컬렉션을 반복하며 객체의 모든 개별 값에서 실행될 명령과 함께 함수를 호출하고 2개의 매개변수와 선언을 가집니다.
변하기 쉬운
반복할 때마다 다른 속성 값이 이 변수에 할당됩니다.
반복 가능한
반복하려는 객체입니다.
...
코드에 약간의 변화가 생겼습니다!
async function getPokemons() {
const request = await axios.get(`${baseURL}/pokemon/?limit=150`)
const pokemons = request.data.results
console.time('FOR OF - RUNTIME')
const pokemonNames = []
for (let pokemon of pokemons) {
pokemonNames.push(pokemon.name)
}
console.log(pokemonNames)
console.timeEnd('FOR OF - RUNTIME')
}
getPokemons()
터미널에서 반환
I did 5 tests and they all took about 13ms with an average of 13.550ms
이력서에
결과를 통해 우리는 FOR 루프 간의 차이가 성능보다 훨씬 더 크다는 것을 알 수 있습니다. 모든 루프에는 세부 사항과 특이점이 있습니다.
FOR OF 루프는 우리의 삶을 더 쉽게 만들어 주지만 밀리초 만에 FOR IN이 약간 더 빠르다는 것을 알 수 있습니다.
보너스
Console.log는 코드에 영향을 미칩니다.
console.log 사용(5회 실행)
FOR = 13.749ms
FOR IN = 13.431ms
FOR OF = 13.550ms
console.log 없이(5회 실행)
FOR = 1,011ms
FOR IN = 0,386ms
FOR OF = 0,414ms
여기까지입니다 읽어주셔서 감사합니다...
Reference
이 문제에 관하여(자바스크립트에서 for 루프 문을 가지고 놀기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/davidtheblane/using-for-statement-little-guide-125j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)