인프런 커뮤니티 질문&답변

히응님의 프로필 이미지
히응

작성한 질문수

[코드캠프] 시작은 프리캠프

배열

문법관련 질문입니다

해결된 질문

작성

·

149

·

수정됨

0

 수업내용에

let classmates = ["철수", "영희", "훈이"]

여기서

classmates.push("맹구")를 넣으면 마지막에 추가기능있는것을 배웠습니다.

그런데 여기서 궁금한게 마지막이 아닌 철수와 영희 사이 또는 영희와 훈이 사이에 넣을수 있는 문법(?)기능이 있을까요?

 

아 또 pop기능에서는 마지막값 삭제인데 그것말고 원하는 값을 삭제하는 기능이 있을까요?

답변 2

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 히응님!

Jiwoo So 님께서 상세한 답변을 해주셨네요!
좋은 답변주신 Jiwoo So님 공유 감사드립니다!^^

0

자바스크립트 Array 객체 메서드를 한번 참고해 보시면 좋을 듯 합니다.

 

추가방법

splice를 통해 제거 또한 가능하며, 중간 index 값에 밀어 넣을 수 있습니다.

1번 인덱스부터 채워가며 두 번째 인자로는 덮어씌울 인덱스를 설정한다고 생각하시면 됩니다.

 

만일 (1, 3, "맹구", "짱구") 로 인수를 담을 경우,

1번 인덱스부터 3번 인덱스까지 제거하고 3 번째 인수부터 담긴 모든 값들을 채워줍니다.

 

아래는 삭제하지 않고, 1번 인덱스부터만 추가한 예시입니다.

const spliceArr = ["철수", "영희", "훈이"];

spliceArr.splice(1, 0, "맹구", "짱구");

console.log(spliceArr); // ["철수", "맹구", "짱구", "영희", "훈이"];

 

제거방법

slice() 메서드를 활용한 특정 index 값 제외나

ES5의 filter() 메서드를 활용하여 원하는 값을 필터링하는 방법이 있습니다.

// Array.prototype.splice()
const spliceArr = ["철수", "영희", "훈이"];

spliceArr.splice(1, 1); // 1 index { 0: "철수", 1: "영희", 2: "훈이" }

console.log(spliceArr); // ["철수", "훈이"]

----------------------------------------------------------------

// Array.prototype.filter();
const filterArr = ["철수", "영희", "훈이"];

const result = filterArr.filter((arr) => arr !== "영희"); // value가 "영희"가 아닌 값을 반환

console.log(result); // ["철수", "훈이"]

----------------------------------------------------------------

// Array.prototype.indexOf() + splice() method
const arr = ["철수", "영희", "훈이"];

const valueIndex = arr.indexOf("영희"); // 1

arr.splice(valueIndex, valueIndex);

console.log(arr); // ["철수", "훈이"]

아래 링크도 참고해 보시며 학습해 보시길 추천드립니다.

JavaScript Array prototype

히응님의 프로필 이미지
히응

작성한 질문수

질문하기