JavaScript-I의 Iterables 및 반복자
18001 단어 programmingwebdevjavascript
const myArr = []
console.log(myArr.prototype)
// undefined
우리는 속성을 가진 대상을 만들고 그룹의prototype 속성을 이 대상을 가리키는 것으로 설정해서 이를 이용할 수 있다.만약 우리가 다음과 같은 방법을 사용한다면;반대, 반대하다keys(), 객체수조의 값과 우리가 얻은 결과가 너무 재미있어요.
const arr = ['foo', 'bar', 'john', 'doe']
console.log(Object.keys(arr))
// ["0", "1", "2", "3"]
console.log(Object.values(arr))
// ['foo', 'bar', 'john', 'doe']
이것은 수조가 여전히 대상임을 한층 더 증명했다.우리가 수조에서 for of 순환을 사용할 수 있는 이유는 기호가 있기 때문이다.교체기 방법.
기호.교체기
이런 방법은 모든 이식 대상에게 통용되는데, 사실상 우리가 대상을 이식할 수 있도록 하려고 할 때, 그것이 바로 우리가 대상에 부가하는 방법이다.어레이로 돌아갑니다.수조는 항목을 특정 위치에 저장하는 데이터 구조로 이 위치는 이 항목의 인덱스입니다.
우리는 아래의 어떤 방법을 통해서도 하나의 그룹을 만들 수 있다
배열 문자
우리는 단지 하나의 그룹 문자를 만들 뿐입니다. 이것은 0 개 이상의 그룹을 포함하는 그룹입니다.
// Array Literal
const arr = []
다른 곳에서
const arr = Array.from("supermam")
comsole.log(arr)
// ["s", "u", "p", "e", "r", "m", "a", "n"]
별것
const arr = Array.of(1,2,3,4)
console.log(arr)
// [1,2,3,4]
배열에 항목 추가하기
우리는 항목을 그룹의 특정 인덱스에 추가하거나 그룹을 사용해서 항목을 그룹에 추가할 수 있습니다.배열 끝에 추가하려면 이 키를 누릅니다.우리도 수조를 사용할 수 있다.이동을 취소하여 처음에 추가합니다.
const arr = []
arr[0] = 'foo' // adding an item to an index
arr.push('bar') // adding to the end
console. log(arr) // ['foo', 'bar']
arr.unshift('john') // adding to the beginning
console.log(arr) // ['john', 'foo', 'bar']
배열에서 항목 검색
우리는 항목의 인덱스를 사용하여 그룹에서 항목을 얻을 수 있으며, 그룹을 사용할 수 있습니다.찾다
// from the index of the item
const arr = [5, 8, 7, 9]
console.log(arr[2]) // 7
// array.find()
const item = arr.find(num => num === 5)
console.log(item) // 5
배열에서 반복
우리는 for of 순환을 사용하여 하나의 그룹을 교체할 수 있습니다. 이 방법은 모든 그룹을 교체할 수 있고, 우리도 그룹을 사용할 수 있습니다.forEach();
const arr = [2, 5, 7, 9, 10]
// for of
for(i of arr){
console.log(i)
}
// array.forEach
arr.forEach(item => console.log(item))
지도.
매핑은 키 값 쌍을 저장할 수 있는 객체로, 매핑은 객체와 유사하지만 객체와 매핑 간의 주요 차이점은 다음과 같습니다.
// creating a map Object
const heroMap = new Map() // new map object
console.log(heroMap) // Map {}
우리는 set 방법을 사용하여 지도 대상에 속성을 추가합니다.heroMap.set('superman', {name: 'superman', alias: 'clak kent'} )
heroMap.set('batman', {name: 'batman', alias: 'bruce wayne'})
set 함수는 두 개의 매개 변수를 받아들인다. 하나는 키이고, 다른 하나는 우리가 이 키를 설정할 값이다.맵 대상에 키가 있는지 확인하기 위해서has 방법을 사용합니다. 맵 대상에 이 키가 존재하면, 이 방법은 맵 대상에게 전달된 키를true로 되돌려줍니다. 그러나 대상에 이 키가 존재하지 않으면undefined로 되돌려줍니다.
heroMap.has("superman") // true
heroMap.has('spiderman') // undefined
heroMap.has("batman") // true
맵 대상에서 값을 얻으려면 get () 방법을 사용합니다. 그 값의 키가 get 방법에 전달되기를 바랍니다.console.log(heroMap.get('superman') )
// {name: 'superman', alias: 'clak kent'}
console.log(heroMap.get('batman'))
// {name: 'batman', alias: 'bruce wayne'}
우리는 for of 순환을 사용하여 지도상에서 교체할 수 있다for(k of heroMap)
{
console.log(k)
}
// ['superman', {name: 'superman', alias: 'clak kent'}]
// ['batman', {name: 'batman', alias: 'bruce wayne'}]
// you can also use this on a map
heroMap.forEach( item => console.log(item))
// superman
// spiderman
// returns us a new iterator object
const keys = Object.keys(heroMap)
console.log(keys.next().value)
// superman
// more on this later
설정
집합은 우리가 하나의 독특한 프로젝트를 저장할 수 있는 재사용 가능한 집합이다. 우리는 집합 중의 모든 데이터를 저장할 수 있지만 모든 데이터는 반드시 유일해야 한다.
우리는 집합 구조 함수를 호출해서 집합을 만들 수 있다.
const mySet = new Set()
집합에 속성을 추가하려면 집합을 사용합니다.dd 방법, 이것은 매개 변수를 받아들인다. 이 매개 변수는 우리가 집합에 추가할 항목이다mySet.add(2)
mySet.add(4)
mySet.add('even numbers')
집합에 값이 존재하는지 확인하려면 집합을 사용할 수 있습니다.has () 방법, 우리는 그 존재성 값을 매개 변수로has 함수에 전달하는 것을 검사할 것입니다.mySet.has("even numbers") // true
mySet.has(2) // true
mySet.has(3) // false
mySet.has(4) // true
우리는 집합의 값을 편집할 수 있기 때문에 for of 방법으로 집합의 값을 검색할 수 있습니다. 집합의 값을 얻기 위해 for of 방법을 사용하여 집합의 값을 교체할 수 있습니다.for (k of mySet) {
console.log(k)
}
// 2
// 4
// even numbers
set.forEach(num => console.log(num))
// 2
// 4
// even numbers
집합은 uid 목록 (유일한 id) 과 같은 유일한 데이터 집합을 저장하는 좋은 생각입니다.컬렉션에서 등록 정보를 검색하면 저장 순서(FIFO)에 따라 해당 등록 정보를 다시 가져옵니다.
우리는iterables,JavaScript에 다른iterables가 있다는 것을 간단하게 토론했을 뿐이다. 우리는 자신의 맞춤형 iterables를 만들 수 있다. 이 모든 것을 후속 글에서 토론할 것이다.
이게 도움이 됐으면 좋겠어요.
Reference
이 문제에 관하여(JavaScript-I의 Iterables 및 반복자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kalashin1/iterables-and-iterators-in-javascript-i-2ci5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)