---
# System prepended metadata

title: 배열

---

# 배열

- 배열예제
```
let animals= [
    "Aardvark",
    "Albatross",
    "Alligator",
    "Alpaca",
    "Ant",
    "Ape",
    "Armadillo",
    "Donkey",
    "Baboon",
    "Badger",
    "Barracuda",
    "Bat",
    "Bear",
    "Beaver",
    "Bee",
    "Bison",
    "Cat",
    "Caterpillar",
    "Cattle",
    "Chamois",
    "Cheetah",
    "Chicken",
    "Chimpanzee",
    "Chinchilla",
    "Chough",
    "Clam",
    "Cobra",
    "Cockroach",
    "Cod",
    "Cormorant",
    "Dugong",
    "Dunlin",
    "Eagle",
    "Echidna",
    "Eel",
    "Eland",
    "Elephant",
    "Elk",
    "Emu",
    "Falcon",
    "Ferret",
    "Finch",
    "Fish",
    "Flamingo",
    "Fly",
    "Fox",
    "Frog",
    "Gaur", 
    "Gazelle",
    "Gerbil",
    "Giraffe",
    "Grasshopper",
    "Heron",
    "Herring",
    "Hippopotamus",
    "Hornet",
    "Horse",
    "Kangaroo",
    "Kingfisher",
    "Koala",
    "Kookabura",
    "Moose",
    "Narwhal",
    "Newt",
    "Nightingale",
    "Octopus",
    "Okapi",
    "Opossum", 
    "Quail",
    "Quelea",
    "Quetzal",
    "Rabbit", 
    "Raccoon",
    "Rail",
    "Ram",
    "Rat",
    "Raven",
    "Red deer",
    "Sandpiper",
    "Sardine",
    "Sparrow",
    "Spider",
    "Spoonbill",
    "Squid",
    "Squirrel",
    "Starling",
    "Stingray",
    "Tiger",
    "Toad",
    "Whale",
    "Wildcat",
    "Wolf",
    "Worm",
    "Wren",
    "Yak",
    "Zebra"
]
```
## 1. 어레이에 마지막 아이템 “Zebra” 제거하기
```
animals.pop()
console.log(animals)
```
- **pop()**  배열에서 마지막 요소가 제거된 후의 배열이 출력
- 반환된 값은 콘솔에 출력되지 않고 버려지기 때문에 zebra 빠진 나머지 값이 출력됨
```
console.log(animals.pop()) 
```
- 배열 animals에서 마지막 요소를 제거하고 그 값을 출력
- 호출한 후에 반환한 값을 콘솔에 출력하기 때문에 Zebra만 출력됨

차이점???
```
console.log(animals.pop())는 호출한 후 반환된 값을 콘솔에 출력하고, 
animals.pop()은 pop() 호출하고 반환된 값을 사용하지 않는다.
```

## 2. 주어진 어레이에 “Dog” 추가하기
- **push()** 배열 끝에 요소 추가 
```
animals.push("Dog")
console.log(animals)
```
- **unshift()** 배열 맨앞에 요소 추가 
```
animals.unshift("Dog")
console.log(animals)
```
- dog를 추가된 후 배열의 최종 길이 (97개)
```
animals.push("Dog")
console.log(animals.push())
```

## 3. 주어진 어레이에 “Mosquito”,“Mouse”,“Mule” 추가하기

### push(), unshift()
- 요소를 추가하고 배열의 길이를 반환
```
let animalsLength = animals.push("Mosquito","Mouse","Mule")

console.log(animalsLength) //길이값 반환
console.log(animals)

```
### concat() 배열 결합
- 배열에 다른 배열이나 값들을 추가하여 새로운 배열
- 원본 배열을 변형하고 싶지 않을 경우 유용함
```
let animals2 = ["Mosquito","Mouse","Mule"]
let newAnimals = animals.concat(animals2)

console.log(animals) // 원본 배열
console.log(newAnimals) // concat() 새로운 배열

```
### concat() 배열복제
```
let newAnimals = [].concat(animals) // animals을 복제하여 newAnimals 만듬
newAnimals.unshift("Mosquito","Mouse","Mule") // 복제한 배열의 맨앞에 요소 추가

console.log(animals) // 원본 배열
console.log(newAnimals) // 복사한 원본배열에 요소 추가된 배열
```

## 4. 해당 어레이에는 "Human"이 있는가?
- **includes()** 배열에 특정 요소가 포함되어 있는지 확인하는 메소드
- 요소가 포함되어 있을경우는 true , 그렇지 않으면 false 반환
- 찾는 요소가 문자열일 경우 대소문자 구분
- 변수를 포함한다.
```
console.log(animals.includes("Human")) / 출력 : false
```
### 4-1 매개변수(함수나 메서드에 전달되는 값을 받아들이는 변수)
**animals.includes(searchElement[, fromIndex])**
- searchElement : 배열에서 찾을 요소입니다.
- fromIndex : 
검색을 시작할 인덱스
생략하면 기본값으로 0이 사용됩니다.
만약 음수 값을 가진다면, 배열의 끝에서부터 역순으로 검색을 시작합니다.
```
console.log(animals.includes("Aardvark", 2));  / 출력 : false 

인덱스 2부터 요소를 검색  0인 Aardvark 검색되지 않는다.
 ```

## 5. 해당 어레이에는 “Cat” 이 있는가?


- **indexOf()** 배열에서 인수로 전달된 요소를 찾아 첫번째로 검색된 요소의 인덱스 반환
- 전달 요소가 없는 경우 -1을 반환
- 옵션이므로 생략하면 0부터 검색
- 요소의 위치를 찾거나 존재하는지 확인할때 유용
- 음수값을 사용할 경우 배열의 끝에서부터 카운트된다.(왼쪽에서 오른쪽으로 검색)
```
let cat = animals.indexOf("Cat") 

console.log(animals.includes("Cat")) / 출력 : true
console.log(cat) / 출력 : 16

```

## 6. "Red deer"을 "Deer"로 바꾸시오
```
console.log(animals.indexOf("Red deer")) // red deer의 인덱스 번호를 찾는다 77번
```
```
animals[77] = "Deer" // 77번째 요소의 이름을 변경
console.log(animals)
console.log(animals.indexOf("Deer")) // 출력 77
```


## 7. "Spider"부터 3개의 아이템을 기존 어레이에서 제거하시오
- **slice()** : 원본 문자열에서 특정 범위의 문자열을 잘라내어 추출한 결과를 새로운 문자열로 반환
- 원본 문자열은 바뀌지 않는다.
- 시작 인덱스 부터 끝 인덱스 직전까지 추출 (끝점은 미포함)
- 추출한 부분 문자열을 수정하거나 다른 문자열과 결합하여 새로운 문자열을 생성할때 유용
```
console.log(animals.indexOf("Spider")) // index:81

console.log(animals.slice(0,81).concat(animals.slice(84)))
```

## 8. "Tiger"이후의 값을 제거하시오
```
console.log(animals.indexOf("Tiger")) // index:87

console.log(animals.slice(0,88))
```

## 9. "B"로 시작되는 아이템인 "Baboon"부터 "Bison"까지 가져와 새로운 어레이에 저장하시오
- slice()함수 이용
```
console.log(animals.indexOf("Baboon")) / index : 8
console.log(animals.indexOf("Bison")) / index : 15

let extraAnimals = animals.slice(8,16)
console.log(extraAnimals)
```
- splice()함수 이용
```
let extraAnimals = animals.splice(8,8) / 시작점에서 몇개까지
console.log(extraAnimals)
```

