해결된 질문
작성
·
149
·
수정됨
0
수업내용에
let classmates = ["철수", "영희", "훈이"]
여기서
classmates.push("맹구")를 넣으면 마지막에 추가기능있는것을 배웠습니다.
그런데 여기서 궁금한게 마지막이 아닌 철수와 영희 사이 또는 영희와 훈이 사이에 넣을수 있는 문법(?)기능이 있을까요?
아 또 pop기능에서는 마지막값 삭제인데 그것말고 원하는 값을 삭제하는 기능이 있을까요?
답변 2
0
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); // ["철수", "훈이"]
아래 링크도 참고해 보시며 학습해 보시길 추천드립니다.