Swift 의 소 작업 (1) 의 배열 에 대한 작업: 세 개의 고급 함수 (map, filter, reduce)
배열 의 처리 에 있어 서 배열 의 모든 요 소 를 통일 적 으로 처리 하려 면 어떤 방법 을 생각 하 시 겠 습 니까? 배열 을 옮 겨 다 니 고 해당 하 는 조작 처 리 를 하 겠 습 니까? 그 전에 저도 이렇게 했 습 니 다. 그러나 swift 는 배열 작업 에 관 한 세 가지 고급 조작 을 제 공 했 습 니 다. 이 세 가지 함수 로 배열 을 처리 합 니 다.자신의 코드 를 높 게 만 들 고 간편 하 며 데이터 양 이 많은 상황 에서 도 실행 속 도 를 높 일 수 있 습 니 다.
(1) 지도
이것 은 배열 의 모든 요 소 를 통 일 된 형식 으로 변환 처리 하 는 데 사용 되 며, 새로운 배열 로 되 돌아 갑 니 다.
하나의 예 를 들 면 모두 가 그것 의 용법 을 직관 적 으로 이해 할 수 있다.
let numbers = [3, 1, 5, 6, 10, 9]
현재 하나의 배열 (int 저장) 의 모든 요 소 를 문자열 로 바 꾸 고 뒤에 '+' 번 호 를 연결 해 야 합 니 다. 그러면 우 리 는 map 로 처리 할 수 있 습 니 다.
let newArr = numbers.map {"\($0)+"}
swift 에 서 는 패 킷 에 있 는 인 자 를 $0 으로 대체 할 수 있 습 니 다. 첫 번 째 인 자 는 $0 이 고 두 번 째 인 자 는 $2 입 니 다. 이런 식 으로 유추 할 수 있 기 때문에 이 안에 $0 은 numbers 의 모든 요소 값 으로 이해 할 수 있 습 니 다.
간단 한 코드 한 줄 로 수 요 를 완 성 했 습 니 다. 간단 합 니 다. 여러분 이 충전 처리 방법 이 있다 는 것 을 알 면 곧 능숙 하 게 운용 할 수 있 습 니 다.
(2) 필터
이것 은 배열 의 요 소 를 선별 하 는 데 사용 되 며, 되 돌아 오 는 것 도 새로운 배열 입 니 다.
같은 예 를 완성 합 니 다: 위의 numbers 배열 을 5 이상 의 수 를 선택 하 십시오.
let newArr = numbers.filter {$0 > 5}
(3) 감소
reduce 는 배열 의 모든 요 소 를 하나의 요소 로 합성 하 는 처리 이 며, 반환 값 은 하나의 값 형식 입 니 다.
하나의 예 로 그의 용법 을 알 수 있다. numbers 배열 의 모든 요 소 를 계산 하 는 것 과
let number1 = numbers.reduce(0, {$0 + $1})
그 중 0 은 초기 값 이 고 $0 은 계산 결과 값 이 며 $1 은 배열 요소 값 입 니 다.
reduce 처리 배열 의 모든 요소 의 곱 하기 도 사용 할 수 있 습 니 다.
let number2 = numbers.reduce(1, {$0 * $1})
계산 과 다른 것 은 이 안의 초기 값 이 1 이다.
이렇게 세 개의 Array 조작 에 관 한 함 수 를 소 개 했 습 니 다. 적당 한 장면 에서 이런 고급 처리 방법 을 활용 하면 좋 은 효과 가 있 을 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.