#TIL 배열 메소드 정리

송정석·2022년 3월 7일
0

Array method 정리

Array.splice

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

let arr = [1, 2, 3, 4, 5];
arr.splice(1, 2);
          
console.log(arr); // [1, 4, 5]
arr.splice(n, m, x): 특정 요소 지우고 추가

let arr = [1, 2, 3, 4, 5];
arr.splice(1, 3, 100, 200);
          
console.log(arr); // [1, 100, 200, 5]
arr.splice(n, m, x): 특정 요소 우고 추가

let arr = ["나는", "철수", "입니다"];
arr.splice(1, 0, "대한민국", "소방관");
          
console.log(arr); // ["나는", "대한민국", "소방관", "철수", "입니다"]
arr.splice() : 삭제된 요소 반환

let arr = [1, 2, 3, 4, 5];
let result = arr.splice(1, 2);
          
console.log(arr); // [1, 4, 5]
console.log(result); // [2, 3]

Array.slice

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

let arr = [1, 2, 3, 4, 5];
arr.slice(1, 4); // [2, 3, 4]
          
let arr2 = arr.slice();
console.log(arr2); // [1, 2, 3, 4, 5]
//괄호안에 아무것도 넣지 않으면 배열 복사

Array.concat

arr.concat(arr2, arr3 ..) : 합쳐서 새배열 반환

let arr = [1, 2];
arr.concat([3, 4]); // [1, 2, 3, 4]
arr.concat([3, 4], [5, 6]); // [1, 2, 3, 4, 5, 6]
arr.concat([3, 4], 5, 6); // [1, 2, 3, 4, 5, 6]

Array.forEach

arr.forEach(fn) : 배열 반복

let users = ['Mike', 'Tom' , 'Jane'];
users.forEach(( item, index, arr) => {
	// ...		Mike    0    users
});				Tom		1
          		Jane	2
users.forEach((name, index) => {
	console.log(`${index+1}. ${name}`); 
});

// 1. Mike
// 2. Tom
// 3. Jane

Array.indexOf / Array.lastindexOf

Array.indexOf() : 발견시 해당요소 반환 없으면 -1 반환

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

arr.indexOf(3); 	// 2
arr.indexOf(3, 3); 	// 7    두번째 인수는 시작 위치를 의미
arr.lastindexOf(3); // 7 

Array.incluedes

Array.incluedes() : 포함하는지 확인

let arr = [1, 2, 3];

arr.includes(2);	// true
arr.includes(8);	// false

Array.find(fn) / Array.findindex(fn)

Array.find(fn) / Array.findindex(fn) 
: indexOf 처럼 찾는다는 의미는 동일하지만 함수를 사용하여보다 복잡한 연산이 가능
** 첫번째 true 값만 반환하고 끝 만약 없으면 undefined를 반환 **
let arr = [1, 2, 3, 4, 5];

const result = arr.find((item)=>{
	return item % 2 === 0;		// 2
});

console.log(result);
let userList = [
	{ name : "Mike", age: 30 },
    { name : "Jane", age: 27 },
    { name : "Tom", age: 10 },
];

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

console.log(result);	// 	{ name : "Tom", age: 10 } 배열 반환
const result = userList.findIndex((user) => {
	if(user.age < 19){
    return true;
	}
return false;
});

console.log(result);	// 	2 조건에 맞는 index 반환

Array.filter(fn)

Array.filter(fn) : 만족하는 모든 요소를 배열로 반환

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

const result = arr.filter((item)=>{
	return item % 2 === 0;		// [2, 4, 6]
});

Array.reverse()

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

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

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

Array.map(fn)

Array.map(fn) : 함수를 받아 특정기능을 시행하고 새로운 배열을 반환
let userList = [
	{ name : "Mike", age: 30 },
    { name : "Jane", age: 27 },
    { name : "Tom", age: 10 },
];

let newUserList = userList.map((user, index) => {
	return Object.assign({], user, {
    id: index +1,
    isAdult : user.age > 19,
    });
});

console.log(newUserList);
//	{ name : "Mike", age: 30, id: 1, isAdult : true},
//  { name : "Jane", age: 27, id: 2, isAdult : true},
//  { name : "Tom", age: 10, id: 3, isAdult : false}
** 기존 배열은 변경된게 없음**

Array.join / Array.split

Array.join

let arr = ["나는", "철수", "입니다"];

let result = arr.join();		// 나는,철수,입니다
let result = arr.join("  ");	// 나는  철수  입니다
let result = arr.join(=);		// 나는-철수-입니다

console.log(result);
Array.split : 문자열을 받아서 배열로 반환

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

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

console.log(result);	// ["Mike", "Jane", "Tom", "Tony"]
let str = "Hello, My name is Mike.";

const result = str.split("");

console.log(result);	// ["H","e","l","l","o", "," ,"M","Y"," ","n","a","m","e"...]

Array.isArray()

Array.isArray : 배열 여부를 확인

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

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

console.log(typeof user);				// object
console.log(typeof userList);			// object

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

Array.sort

Array.sort : 배열 재정렬, 배열 자체가 변경되니 주의

let arr = [1, 5, 4, 2, 3];
arr.sort();

console.log(arr)		// [1, 2, 3, 4, 5]
let arr = ["a", "c", "e", "d", "b"];
arr.sort();

console.log(arr)		// [a, b, c, d, e]
let arr = [27, 8, 5, 13];
arr.sort();

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

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

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

Array.reduce

Array.reduce : 인수로 함수를 받음 (누적 계산값, 현재값) => { return 계산값 };

let arr = [1, 2, 3, 4, 5];
// for, for of , forEach

let result = 0;
arr.forEach((num) => {	// forEach사용
	result += num;
});
console.log(arr)		// 15

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

const result = arr.reduce((prev, cur)=>{
	return prev + cur;
}, 0)					// 초기값에 따라 시작 되는 숫자가 다름 ex) 100 이면 115

console.log(arr)		// 15

let userList = [
		{ name : "Mike", age: 30},
        { name : "Tom", age: 10},
        { name : "Jane", age: 27},
        { name : "Sue", age: 26},
        { name : "Harry", age: 42},
        { name : "Steve", age: 60},
];
let result = userList.reduce((prev, cur) => {
	if(cur.age > 19){
    	prev.push(cur.name);
    }
    return prev;
}, [])

console.log(result);
//	"Mike"
//	"Jane"
//  "Sue"
//  "Harry"
//  "Steave"
let result = userList.reduce((prev, cur) => {
	return prev += cur.age;
}, 0);

console.log(result);			// 196
let result = userList.reduce((prev, cur) => {
	if(cur.name.length === 3){
    	prev.push(cur.name);
    }
    return prev;
}, []);

console.log(result);			// "Tom", "Sue"
profile
Foot print

0개의 댓글