10개의 JavaScript 한줄짜리 코드 작성 방법

10개의 JavaScript 한줄짜리 코드 작성 방법
Cozy CodingPosted On Jun 19, 20246 min read

이미지 태그를 수정하여 마크다운 형식으로 변환해보세요.

image

코딩을 하고 있는데 다른 사람이 들어와서 한 줄의 JavaScript로 문제를 해결할 때가 있나요? 마치 코딩 마술 같은 느낌이죠.

이것이 원라이너의 힘입니다. 이러한 짧은 코드 스니펫은 매우 효과적일 수 있으며, 자바스크립트 프로처럼 느끼게 할 수 있습니다.

하지만 코드의 모든 부분에 원라이너를 넣기 전에, 함께 알아보겠습니다.

한 줄 코드는 기능을 한 줄로 압축하는 JavaScript 코드의 짧은 스니펫들이에요.

더 간결한 코드를 작성하는 데 도움이 되고 때로는 가독성을 향상시키기도 해요.

어떤 이점이 있을까요? 시간을 절약할 수 있고 깔끔한 코드를 만들 수 있으며 다른 개발자들에게 조금은 인상을 심어줄 수도 있어요.

지금은 당신에게 빠른 성과를 가져다줄 실용적이고 초보자 친화적인 한 줄 코드에 집중하고 있어요.

당신의 JavaScript 도구 상자에 추가할 수 있는 좋은 옵션들이 있어요:

image

1. 배열 필터링

시험 점수 배열이 있고 A를 모두 찾아야 할 때 (이 경우 짝수), 한 줄로 쉽게 해결할 수 있어요!

const scores = [85, 92, 73, 98, 80];
const evenScores = scores.filter(num => num % 2 === 0);

// evenScores will be [92, 98, 80]

이 코드는 filter 메서드를 사용하여 테스트를 통과한 요소만 포함하는 새 배열을 생성합니다.

화살표 함수 (num => num % 2 === 0) 는 각 숫자가 짝수인지를 확인합니다.

사용 시기: 배열에서 원치 않는 요소를 제거하는 필터링은 흔한 작업입니다. 이 한 줄은 데이터를 정리할 때 유용합니다.

2. 배열 매핑

만약 여러 변 길이가 담긴 배열이 있고, 각 정사각형의 넓이를 구하고 싶다면 이 한 줄 코드를 사용하여 배열의 각 원소를 해당 수의 제곱으로 변환할 수 있습니다:

const sideLengths = [5, 3, 7];
const areas = sideLengths.map(num => num * num);

// areas will be [25, 9, 49]

map 메서드는 원본 배열의 모든 요소에 제공된 함수를 호출한 결과를 가지고 새로운 배열을 생성합니다.

여기서 이 함수는 각 숫자를 제곱합니다.

사용 시기: 이 한 줄 코드는 배열의 각 요소에 대해 수학 연산을 수행하기에 유용합니다.

3. 배열 평탄화

가끔 중첩된 배열을 만날 수 있습니다. 예를 들어, 각 변형별 하위 항목이 있는 식료품 가게 제품 목록과 같은 경우입니다. 한 줄 코드를 사용하여 이러한 구조를 평탄화하는 데 도움을 줄 수 있습니다.

const nestedGroceries = [
  ["사과", ["빨간색", "초록색"]],
  ["우유", ["전체", "2%"]]
];
const flatGroceries = nestedGroceries.flat(); 

// flatGroceries는 ["사과", "빨간색", "초록색", "우유", "전체", "2%"]가 됩니다.

flat 메서드(ES6 이상에서 이용 가능)는 모든 하위 배열 요소를 연결하여 새 배열을 만듭니다.

이것은 데이터 조작 작업을 단순화할 수 있습니다.

사용 시기: 중첩된 배열을 평탄화하면 데이터를 한 차원으로 더 쉽게 다룰 수 있습니다.

4. 중복 없이 고유한 요소 찾기

아마도 중복된 항목이 있는 손님 명단이 있을 수 있습니다.

한 줄 코드는 모두가 고유한 초대장을 받을 수 있도록 도와줍니다 (어색한 "어, 내가 두 개 받았어?" 상황을 피하기 위해).

// 중복 항목이 포함된 원래 손님 명단
const guestList = ["Alice", "Bob", "Charlie", "Alice"];

// 배열을 Set으로 변환하고 다시 배열로 변환하여 중복 제거
const uniqueGuestList = [...new Set(guestList)];

// uniqueGuestList은 ["Alice", "Bob", "Charlie"]가 됩니다
console.log(uniqueGuestList);

이 한 줄은 세트의 마법을 사용합니다. 세트는 고유한 값을 저장합니다.

우리는 원래 목록에서 고유한 손님들을 포함한 세트에서 요소들을 (...) 펼쳐서 새 배열로 넘깁니다.

사용 시기: 데이터 정리는 종종 배열에서 중복을 제거하는 것을 의미합니다. 이 한 줄은 데이터를 깔끔하고 정돈된 상태로 유지해줍니다.

5. 줄임 조건문

한 줄로 된 if...else 문을 여러 줄에 걸쳐 작성한 적이 있나요? 그렇게 하지 않고도 더 간결한 방법이 있어요:

// 사용자의 나이 정의
const age = 18;

// 사용자의 나이에 따라 메시지 결정
const message = age >= 18 ? "환영합니다!" : "죄송합니다, 아직은 미성년자입니다.";

// 메시지 출력
console.log(message);

위 코드는 삼항 연산자를 활용해 한 줄로 짧은 if-else 문을 작성한 것이에요.

조건 (age `= 18)을 확인하고, 해당 값 ("환영합니다!" 또는 "죄송합니다, 아직은 미성년자입니다.")을 message 변수에 할당해요.

언제 사용하나요: Shorthand 조건문은 상황에 따라 간단한 할당을 수행할 때 효율적이고 코드를 깔끔하게 유지할 수 있어요.

6. 문자열 뒤집기

한 줄로 문자열을 역순으로 만들 수도 있어요! 회문인지 확인해보려면 어떨까요 (거꾸로 읽어도 같은 단어, 예를 들어 "racecar" 같은 단어) ?

const str = "Hello, world!";
const reversedStr = str.split('').reverse().join('');

// reversedStr 결과는 "!dlrow ,olleH"가 됩니다.

이 한 줄 코드는 문자열을 문자 배열로 나누어 순서를 뒤집은 다음 새 문자열로 다시 결합합니다!

사용 시기: 문자열 조작 작업 중에 일회성 코드로 문자열을 뒤집거나 부분 문자열을 추출하는 작업을 간단히 처리할 수 있습니다.

7. 객체 속성 존재 여부

사용자 프로필 시스템을 만들고 특정 속성(예: "이메일")이 사용자 객체에 있는지 확인해야 한다고 상상해보세요. 이 한 줄 코드가 도움이 될 수 있습니다:

const user = { name: "Alice", age: 30 };

// 사용자 객체에 'email' 속성이 있는지 확인합니다.
const hasEmail = "email" in user;

// 'email' 속성이 사용자 객체에 없으므로 hasEmail은 false가 됩니다.

in 연산자는 객체 내에 속성이 존재하는지 확인합니다. 여기서는 사용자 객체에 "email" 속성이 있는지 확인합니다.

사용 시기: 객체 내에서 지정된 속성의 존재 여부에 따라 데이터를 유효성 검사하는 것은 일상적인 상황입니다. 이 1줄짜리 코드는 간단한 해결책을 제공합니다.

8. 기본 매개변수 값

얼마나 이름이 제공되지 않았을 때 백업 값을 사용하여 사용자에게 인사하는 작업을 생성하는 것은 어떨까요? 원 라이너는 이것을 처리할 수 있어요:

const greet = (name = "손님") => `안녕하세요, ${name}!`;
console.log(greet());

// 출력: 안녕하세요, 손님!

console.log(greet("밥"));
// 출력: 안녕하세요, 밥!

이 원 라이너는 ES6 기본 매개변수를 사용합니다. 여기서 greet 함수를 호출할 때 이름이 제공되지 않으면 "손님"의 기본 값이 사용됩니다.

언제 사용할까요: 기본 매개변수는 함수가 적절한 인수 없이 호출될 때 오류를 피하며 코드를 더 견고하게 만듭니다.

9. Compact Arrays

가끔 비어있는 값이나 null 요소를 포함한 배열을 만날 수 있습니다. 한 줄의 코드로 이러한 불필요한 요소를 제거하는 데 도움이 될 수 있어요:

const numbers = [1, 0, null, 3]; // 원본 배열
const compactNumbers = numbers.filter(Boolean); // Boolean을 콜백 함수로 사용한 filter 메서드

// compactNumbers은 Boolean(1)이 true, Boolean(0)이 false, Boolean(null)이 false, 그리고 Boolean(3)이 true이기 때문에 [1, 3]이 될 거에요

이 한 줄의 코드는 filter 메서드를 다시 활용합니다. 다만, 이번에는 Boolean 생성자를 사용하여 "falsy" 값 (null, undefined, 0, "", NaN 등)을 확인하는 것이 특징이에요.

False로 평가되는 요소는 새 배열에서 제외됩니다.

언제 사용하면 좋을까요: 불필요한 요소를 제거하여 배열을 정리하면 중요한 데이터만 다루고 있음을 보장할 수 있습니다.

10. 동적 객체 키

한 줄로 작성된 코드로 심지어 작업 이후에 결정되는 키를 가진 객체를 만들 수도 있습니다. 놀랐나요?

const prop = "score";
const person = { [prop]: 90 };

// person will be {score: 90}

이 한 줄은 계산된 속성 이름을 사용합니다. prop 변수의 값은 객체를 생성할 때 중괄호 내부에서 키 이름으로 사용됩니다.

이를 통해 변수나 표현식을 기반으로 한 동적 키 생성이 가능해집니다.

사용 시기: 동적 객체 키는 구조가 미리 설정되지 않은 것을 만드는 데 유용합니다.

마지막으로

자바스크립트 코드를 개선하기 위해 멋진 원 라이너를 몇 가지 배웠으면 좋겣습니다.

원 라이너는 강력한 도구이지만 코드의 명확성과 유지 보수성을 보장하기 위해 신중하게 사용해야 합니다.

JavaScript 개념을 더 깊이 파고들고 새로운 코딩 모험에 나서게 될 향후 포스트를 기대해 주세요!

image 1

image 2