본문 바로가기
JavaScript/메소드

[javascript] 배열에 숫자 갯수 세기, join(), split(), filter()

by Angry Stock 2023. 8. 31.
반응형
join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// Expected output: "Fire,Air,Water"

console.log(elements.join(''));
// Expected output: "FireAirWater"

console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"
split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
const str = 'The quick brown fox jumps over the lazy dog.';

const words = str.split(' ');
console.log(words[3]);
// Expected output: "fox"

const chars = str.split('');
console.log(chars[8]);
// Expected output: "k"

const strCopy = str.split();
console.log(strCopy);
// Expected output: Array ["The quick brown fox jumps over the lazy dog."]
filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter((word) => word.length > 6);

console.log(result);
// Expected output: Array ["exuberant", "destruction", "present"]
배열에 숫자 개수 세기
function solution1(array) {
  let answer = 0;
  array
    .join('')
    .split('')
    .map((e) => {
      if (e == 3) {
        answer++;
      }
    });
  return answer;
}
function solution2(array) {
  return array
    .join('')
    .split('')
    .filter((e) => e == 3).length;
}
function solution3(array) {
  return array.join('').split('3').length - 1;
}

let array = [
  [2, 8, 11, 25, 32, 36],
  [5, 7, 15, 21, 22, 40],
  [1, 7, 9, 33, 35, 40],
];

for (let i = 0; i < array.length; i++) {
  console.log('solution1', solution1(array[i]));
  console.log('solution2', solution2(array[i]));
  console.log('solution3', solution3(array[i]));
}
결과

반응형

댓글