[JS] 배열 공부

박형석·2022년 5월 14일
0

Array

자바스크립트를 공부하면 할 수록 신비한 세계와 마주하게 된다. 오늘은 배열에 대해 정리를 해보려고 한다.

아래의 코드를 복사하여 개발자도구의 콘솔에 붙혀넣으면 결과를 볼 수 있다.

let arr = [1,2,3,4,5]
let user = [
    { name: 'Mike', age: 32},
    { name: 'Jane', age: 35},
    { name: 'Hengsgg', age: 27}
]

console.log('Array.isArray:', Array.isArray(arr))
console.table('table:',arr)
console.log('splice',arr.splice(1, 2, 8, 9)); // (n, m, x) arr배열에 n번째 요소부터 m번째 요소까지 지우고 지운 자리에 x를 추가,
// 본인은 삭제된 요소를 반환함
console.log('arr',arr); // 배열은 삭제가 됨
arr = [1,2,3,4,5]
console.log('slice',arr.slice(1, 4)); //(n, m) n부터 m까지 반환함. 
console.log('concat',arr.concat([5,6], [7,8])); // 배열을 합쳐서 반환
console.log(arr.indexOf(3)); //(n, m) n은 찾을 값, m은 시작할 위치, 결과: 찾은 값의 위치
console.log(arr.lastIndexOf(3))//indexOf랑 반대
console.log(arr.includes(2)) // 배열안에 찾을 값이 있는지 boolean
const result = arr.find((item) => {
    return item % 2 === 0;
});// 첫번째 true 값만 반환하고 끝, 만약 없으면 undefined를 반환
console.log(result);
const results = arr.filter((item) => {
    return item % 2 === 0;
});// 조건에 맞는 값들을 배열로 반환

console.log(results)
console.log(arr.reverse()); // 배열을 역순으로 위치시킨다.
console.log(arr.reverse()); // 원상복구

const newuser = user.map((user, index) => {
    return Object.assign({}, user, {
        id: index + 1,
        isAdult: user.age > 19,
        num: index,
    });
}); // 함수를 받아 특정 기능을 시행하고 새로운 배열을 반환.
console.log('newuser:',newuser); 
console.log('user:',user)

let hello = ["안녕", "나는", "형석이야", "만나서", "반가워"];
console.log('join:',hello.join('-'))// 괄호 안의 구분자로 배열을 문자열로 바꾸어 준다.

let hi = "안녕 나는 박형석 이라고 해요 하하하"
console.log('split:',hi.split(" "))// 괄호 안의 구분자로 문자열을 배열로 변환
// sort
let num = [1,3,4,5,3,3,6,7,9];
let str = ['banana', 'disc', 'cucomber', 'apple'];
console.log(num.sort()) //sort를 이용하여 배열의 순서를 정렬해 준다.
console.log(str.sort()) // 문자열도 물론 정렬 가능하다. 
//reduce : 배열의 모든 수 합치기
let obj = 0
arr.forEach((num) => {
    obj += num;
});
console.log('forEach',obj);
obj = 0;
//위의 과정을 reduce로 처리가능
let that = arr.reduce((prev, cur)=>{
    console.log(prev, cur)
    return prev + cur;
}, 0) // arr.reduce((이전값, 현재값) => {return 이전값 + 현재값;}, 초기값)
console.log(that)
that = []
that = user.reduce((prev, cur)=> {
    if(cur.age > 30){
        prev.push(cur.name)
    }
    return prev;
},[]);
console.log(that) // 배열도 reduce를 사용하여 출력이 가능하다.
profile
Better Than Yesterday

0개의 댓글