javascript - 문자와 배열관련 메소드1(feat. 특정문자 제외)

bebrain·2022년 11월 14일
0

특정문자를 제외한 배열 추출하기

let list = [
    '01. 들어가며',
    '02. 자바스크립트',
    '03. 파이썬',
    '04. html',
    '05. css',
    '06. reace',
]

let new_list = [];
for(let i in list){
    new_list += list[i].slice(4);
};
console.log(new_list); // 들어가며자바스크립트파이썬htmlcssreace

let new_list2 = [];
for(let i in list){
    new_list2.push(list[i].slice(4));
};
console.log(new_list2); // [ '들어가며', '자바스크립트', '파이썬', 'html', 'css', 'reace' ]

🔔 slice(n, m) : 시작점(n)부터 m까지(없으면 문자열 끝까지) 반환

특정문자 포함여부 확인하기

🔔 indexOf() : 배열 안에서 찾으려는 값과 일치하는 '첫번째' 요소의 index를 return
🔔 lastIndexOf() : 배열 안에서 찾으려는 값과 일치하는 '마지막' 요소의 index를 return

function haveA(str){
    if(str.indexOf('A')){
        console.log('A를 포함하고 있는 문장입니다');
    }else{
        console.log('PASS');
    }
};

haveA('나는 A입니다') // A를 포함하고 있는 문장입니다
haveA('나는 B입니다') // A를 포함하고 있는 문장입니다
haveA('A? 그런건 있을수없어') // PASS

indexOf() 메소드는 ()안의 텍스트가 없을 경우 -1을 반환한다.
따라서 해당 문자가 없더라도 if문은 참이 되어버린다
*0(false)이 아니면 true를 반환하므로

❗ 또 해당 문자가 첫번째에 들어있을 경우 indexOf('text')=0이 되어 참인데도 false로 처리되는 정반대의 결과가 나와버린다.

그래서 위의 if문은 아래와 같이 고쳐주어야 한다.

if(str.indexOf('A')>-1)

이제는 결과가 잘 나오는 것을 볼 수 있다.

function haveA(str){
    if(str.indexOf('A')>-1){
        console.log('A를 포함하고 있는 문장입니다');
    }else{
        console.log('PASS');
    }
};

haveA('나는 A입니다') // A를 포함하고 있는 문장입니다
haveA('나는 B입니다') // PASS
haveA('A? 그런건 있을수없어') // A를 포함하고 있는 문장입니다

특정문자 포함여부를 확인하는 메소드2 : includes()

🔔 includes(x, y) : 배열이 x를 포함하고 있는지 판별, 대소문자를 구분한다 y는 검색을 시작할 위치(없으면 문자열 전체)

조건에 맞는 첫번째 요소값 반환 : find(), findIndex()

let user_list = [
    {'name':'Jane', 'age':30},
    {'name':'Bella', 'age':20},
    {'name':'Ed', 'age':15},
]


function findUser(user){
    return user.name === 'Bella'
}
console.log(user_list.find(findUser)); // { name: 'Bella', age: 20 }

위의 식은 아래의 식과 같다.

const result = user_list.find(user => {
    return user.name === 'Bella'
})
console.log(result); // { name: 'Bella', age: 20 }

🔔 findIndex() : 조건에 맞는 값의 첫번째 index를 반환한다.

const result = user_list.findIndex(user => {
    return user.name === 'Bella'
})
console.log(result); // 1

📛 find(), findIndex()는 첫번째 값에 대한 정보만 반환!
(없으면 undefined 반환)

조건에 맞는 모든 값 반환 : filter()

🔔 사용법은 find()와 같다.

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


const result = arr.filter(item => {
    return item >= 3;
});
console.log(result) // [3,4,5]

1개의 댓글

comment-user-thumbnail
2022년 11월 15일

이모티콘이 중간중간있어서 가독성이 더 좋은것같네요!

답글 달기