[javascript][array]배열 추가,수정,삭제

song·2022년 9월 2일
0

배열

참조 자료형 데이터 타입,
한개의 변수에 여러 개의 값을 순차적으로 저장할 때 사용한다

1.배열추가

let arr = ['a','b','c']
	arr.push('d'); // 배열 끝에 요소 추가 arr = ['a','b','c','d']
    arr.unshift('d'); // 배열 앞쪽에 요소 추가  arr = ['d','a','b','c']
    arr.splice(2,0,'d') // 배열 2번쨰 index 위치에 d 추가  arr = ['a','b','d','c']
    arr.splice(4,0,,'e','f') // 배열 4번째 index 위치에 e,f, 추가 arr = ['a','b','c',undefined,'e','f']

splice,slice 설명

splice(변경시작 index, 제거 요소 수, 추가 요소1, 추가 요소2)

배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 원본 배열의 내용을 변경

slice(start,end)

어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환

양수는 앞에서 0부터 시작
음수는 뒤에서 -1부터 시작

let data = slice(1,4) // [바,스,크] 
let data2 = slice(-4,5) // [스,크,립]

2.배열 삭제

let arr = ['a','b','c']
	arr.pop(); // 마지막요소 제거 arr = ['a','b']
    arr.shift(); // 첫번째요소 제거  arr = ['b','c']
    arr.splice(2,1) // 배열 2번쨰 index 부터 1개 제거  arr = ['a','b'] 반환 받을 수 있다.

etc.함수 사용 없이 추가,삭제,삽입.

let arr = ['a','b','c']
	delete arr[1]; // 요소는 그대로 값만 삭제 ['a',undefined,'c']
    arr[arr.length] = 'e' // 끝요소에 추가
    arr.length = arr.length - 1; // 마지막 요소 삭제
    arr[5] = 'g' // ['a',b','c',undefined,undefined,'g']

3.배열에서 특정 값 삭제

let arr = ['a','b','b','c'];
값이 'b' 인 요소 삭제
1. for 문 + splice

  for(let i= 0; i < arr.length; i++){
      if(arr[i] === 'b'){
          arr.splice(i,1)
          i--; // index 하나가 삭제됬으니 -1;
      }
  }
  1. filter 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환
  let filtered = arr.filter((item)=>{
      item !== 'b'
  })
  값이 'b' 가 아닌 값들만 배열로 반환

3.indexOf 해당 값이 있는지 없으면 -1, 있으면 인덱스 값 처음 index 값만 반환.

	const index = indexOf('b');
    if(index > -1 ){
    	arr.splice(index,1)
    }

4.특정값 찾기

const arr = [
    {name: 'apple', price : 1000}, 
    {name: 'banana', price : 2000},
    {name: 'apple', price: 3000}
];

arr.find((item)=>item.name === "apple") // 특정 조건에 부합하는 배열의 첫번째 값만을 리턴
arr.filter(item => item.name === " apple) // 조건에 부합하는 배열의 모든 값을 새로운 배열로 리턴

5.특정값 찾아 바꾸기
var charSets = ["ab","bb","cd","ab","cc","ab","dd","ab"];

while(charSets.indexOf("ab") != -1){
  charSets.splice(charSets.indexOf("ab"),1,"**");  
}

charSets = ["**","bb","cd","**","cc","**","dd","**"]
charSets.forEach((el,index,array)=>{
	if(el === "ab"){
    	array[index] = "**";
    }
})
profile
프론트엔드 개발자

0개의 댓글