자바스크립트 (배열메소드)

Junho Yun·2022년 11월 17일
0

하루만에배우기

목록 보기
6/11
post-thumbnail

기본 배열 메소드

push() : 뒤에 삽입
pop() : 뒤에 삭제
ubnshift() : 앞에 삽입
shift() : 앞에 삭제

추가 배열 메소드

  1. arr.splice(n,m) : 특정 요소 지움
    n : 시작, m : 개수

  2. arr.splice(n,m,x) : 특정 요소 지우고 추가
    특정요소를 1번과 같은 원리로 삭제 후 해당 위치에 추가해 주는 메소드

  3. arr.slice(n,m) : n부터 m까지 반환

  4. arr.concat(arr2,arr3 ..) : 배열끼리 합쳐서 새로운 배열 반환

  5. arr.forEach(fn) : 배열 반복
    함수로 3개의 인수를 받습니다. item(요소), index, arr(배열)

  6. arr.indexOf / arr.lastIndexOf
    indexOf : 해당 값을 갖고 있는지, 몇 인덱스부터 확인할지 받은 후, 가장 첫 값의 인덱스 반환
    lastIndexOf : 뒤에서 부터 확인하고 싶을 때

  7. arr.includes() : 포함하는지 확인 후 true 혹은 false로 반환

  8. arr.find(fn) / arr.findIndex(fn)
    해당 값을 갖고있는 지 확인하여 index 값을 반환하는 것은 동일하지만, 함수를 받기 때문에 더욱 복잡한 것을 확인할 수 있습니다. (ex 짝수찾기) 주의할 점은 확인해서 있으면 첫번째 true만 반환하고 끝납니다. 없으면 undefined를 반환합니다.
    findIndex는 조건에 맞는 index를 반환합니다.

  9. arr.filter(fn) : 함수를 받아 조건에 맞는 모든 요소를 배열로 반환

  10. arr.reverse() : 역순으로 재정렬

  11. arr.map(fn) : 함수를 받아 특정 기능을 시행하고 새로운 배열을 반환
    실무에서 많이쓰입니다. 많은 연습 부탁. arr자체를 바꾸진 않습니다.

  12. arr.join(구분자) : 배열을 합쳐서 문자열을 만들고 싶을 때
    str.split : 문자열을 나눠서 배열로 만들어줍니다.

  13. Array.isArray() : 배열인지 아닌지 확인

//------1--------------
let arr1 = [1,2,3,4,5]; 
arr1.splice(1,2); // 1번째 부터 2개의 요소 삭제

console.log(arr1); // [1,4,5]

//------2--------------
let arr2 = [1,2,3,4,5];
arr2.splice(1,3,100,200) // 
1번째부터 3개삭제 -> 2,3,4 삭제
그 자리(1번자리)에 100,200 추가

console.log(arr2); // [1,100,200,5]

//------3--------------
let arr3 = [1,2,3,4,5];
srr.slice(1,4); // [2,3,4]

//------4--------------
let arr4 = [1,2];

arr4.concat([3,4]); // [1,2,3,4]
arr4.concat([3,4],[5,6]); // [1,2,3,4,5,6]
arr4.concat([3,4],5,6); // [1,2,3,4,5,6]

//------5--------------
let arr5 = ["Mike","Tom","Jane"];

arr5.forEach((name, index) => {
	console.log(`${index + 1}. ${name}`);
	// 1. Mike 
    // 2. Tom
    // 3. Jane
});

//------6--------------
let arr6 = [1,2,3,4,5,1,2,3];

arr6.indexOf(3); // 2
arr6.indexOf(3,3); // 7, 4번 인덱스부터 확인
arr6.lastIndexOf(3); // 7, 뒤에서부터 확인

//------7--------------
let arr7 = [1,2,3]

arr7.includes(2); // true
arr7.includes(8); // false
//------8--------------
let arr8 = [1,2,3,4,5];

const result = arr8.find((item) => {
	return item % 2 === 0; //짝수만 반환
});

console.log(result); // 2, 2와 4 두개가 있지만 2를 찾고 반환하고 끝납니다.

let userList = [
	{ name: "Mike", age: 30},
    { name: "Jane", age: 27},
    { name: "Tom", age: 12},
]

const result = userList.findIndex((user) = > {
	if (user.age < 19) {
    	return true;
    }
    return false;
}

console.log(result)  // 2, age 12인 Tom의 인덱스 반환 

//------9--------------
let arr9= [1,2,3,4,5];

const result = arr9.find((item) => {
	return item % 2 === 0; //짝수만 반환
});

console.log(result)  // [2,4,6] 

//------10--------------
let arr = [1,2,3,4,5];

arr.reverse(); // [5,4,3,2,1]

//------11--------------
let userList2 = [
	{ name: "Mike", age: 30},
    { name: "Jane", age: 27},
    { name: "Tom", age: 12},
];

let newUserList = userList.map((user, index) => {
	return Object.assingn({},user,{
    	isAudelt: user.age > 19,
    });
});

console.log(newUserList); 
// 0: {name: "Mike", age: 30, isAdult: true}
// 1: {name: "Jane", age: 27, isAdult: true}
// 2: {name: "Tom", age: 12, isAdult: false}

//------12--------------
let arr12 = ["안녕", "나는", "철수야"];

let result = arr.join("-");

console.log(result); // 안녕-나는-철수야

const users = "Mike,Jane,Tom,Tony";

const result = users.split(",");

console.log(result); // ["Mike","Jane","Tom","Tony"]


//------13--------------
let user = {
	name : "Mike",
    age : 30,
};

let userList = ["Mike","Tom","Jane"];

console.log(Array.isArray(user)); // false
console.log(Array.isArray(userList)); // true

배열 sort() 와 reduce()

arr.sort() : 배열 재정렬, 배열 자체가 변경됨.
인수로 정렬 로직을 담은 함수를 받음

주요 문제점은 숫자도 문자로 인식해서 배열한다는 것 입니다.

Lodash 사용 -> _.sortBy(arr); 를 사용해서 정렬할 수 있습니다.

arr.reduce(fn) : 각 요소에 대해 fn을 실행하고 하나의 값으로 반환 합니다.
배열의 모든 수 합치기에 활용가능, 성인들의 나이만 배열로 만들어서 반환하기 등
인수로 함수를 받습니다. (누적 계산값,현재값) => {return 계산값};

//arr.sort() 활용

let arr = [27,8,5,13]

arr.sort((a,b) => {
	console.log(a,b);
	return a-b;
});

arr.sort();

console.log(arr); // [5,8,13,27]

//arr.reduce() 활용

let arr = [1,2,3,4,5];

const result = arr.reduce((prev, cur) => {
	return prev + cur;
}, 0); 
// 뒤에 0은 초기값을 설정해주는 것, 생략 가능합니다. 


//arr.reduce() 활용2
let userList2 = [
	{ name: "Mike", age: 30},
    { name: "Jane", age: 27},
    { name: "Tom", age: 12},
    { name: "Sue", age: 26},
    { name: "Harry", age: 15},
    { name: "Steve", age: 43},
];

let result = userList2.reduce((prev,cur) => {
	if (cur.name.length === 3) {
   		prev.push(cur.name);
    }
    return prev;
}, []);

console.log(result) // ["Tom", "Sue"]
profile
의미 없는 코드는 없다.

0개의 댓글