0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScript よく使う便利な処理

Last updated at Posted at 2024-12-09

開発チームでJavaScriptの勉強会があったので、
内容アウトプットです。

今回はよく使われている5つについて、
実際コードと解説を書いていきます。

紹介するもの

①flat
②shift
③map
④三項演算子
⑤スプレッド構文(てんてんてんのやつ)

①flat

配列を平坦化するメソッド。
ネスト(入れ子)になっている配列のネストを解除するようなイメージ。

元の配列は維持する。

//flatの例
const ary1 = [[1,2,3],[4,5,6]]
console.log(ary1);

const aryFlat = ary1.flat();
console.log(aryFlat);


//結果

//ary1
(2) [Array(3), Array(3)]
0:(3) [1, 2, 3]
1:(3) [4, 5, 6]

//aryFlat
(6) [1, 2, 3, 4, 5, 6]

②shift

配列の先頭(一番最初)の要素を取り出す。
取り出した要素は変数から削除する。
取り出した要素を変数に入れることもできる。

「最新情報だけ取り出したい」
なんて場面でよく使う。

//shiftの例
const ary = [1,2,3,4,5,6]
console.log(ary);

const aryShift = ary.shift();
console.log(aryShift);
console.log(ary);

//結果
//ary
[1, 2, 3, 4, 5, 6]

//aryShift
1

//aryShift後のary 1が削除されている
[2, 3, 4, 5, 6]

③map

配列の中身を一つずつ変換して、新しい配列を作るメソッド。
よく使う。

//mapの例
const membershipData = [
    {
        id: "001",
        name: "田中太郎",
        planType: "premium",
        joinDate: "2023-01-15"
    },
    {
        id: "002",
        name: "佐藤花子",
        planType: "standard",
        joinDate: "2023-02-20"
    },
    {
        id: "003",
        name: "鈴木一郎",
        planType: "premium",
        joinDate: "2023-03-10"
    }
];

const aryMap = membershipData.map(e => {
    
    const displayPlanTypeList = {
        standard: "スタンダードコース",
        premium: "プレミアムコース"
    }
    
    return {
        id: e.id,
        name: e.name,
        displayPlanType: displayPlanTypeList[e.planType],
        joinDate: e.joinDate
    }
})

console.log(aryMap)

//結果 planType要素をdisplayPlanTypeにして新たな配列を生成
    [
     {
        id: "001",
        name: "田中太郎", 
        displayPlanType:"プレミアムコース" , 
        joinDate:"2023-01-15"
     },
     {
         id: "002",
         name: "佐藤花子", 
         displayPlanType:"スタンダードコース" ,
         joinDate:"2023-02-20"
     },
     {
         id: "003",
         name: "鈴木一郎",
         displayPlanType:"プレミアムコース",
         joinDate:"2023-03-10"
     }
   ];  

④三項演算子

if-else文を少ない記述量で実現した演算子。

elseifと似たような処理をするには、
ネストする必要がある。

// if-else文で記述
let score1 = 50;
let passingGrade1;

if (score1 >= 40) {
	//Trueの処理
	passingGrade1 = '40点以上で合格です。';
} else {
	//Falseの処理
	passingGrade1 = '40点未満 不合格です。';
}

console.log(passingGrade1); //'40点以上で合格です。'


// 三項演算子で記述
let score2 = 60;
let passingGrade2 = (score2 >= 40) ? "40点以上で合格です。" : "40点未満 不合格です。";

console.log(passingGrade2);  //'40点以上で合格です。'

⑤スプレッド構文

配列やオブジェクトを展開できる構文。
元の配列やオブジェクトは維持する。

通称「点点点のやつ」。「...」って書く。

//例1 配列の展開
const ary1 = ["裏金問題","界隈","初老ジャパン","新紙幣"];
const ary2 = ["50-50","ふてほど","Bling-Bang-Bang-Born","ホワイト案件","名言が残せなかった","もうええでしょう"];
const mergedArray = [ ...ary1, ...ary2 ];

console.log(mergedArray); 
//結果 ["裏金問題","界隈","初老ジャパン","新紙幣","50-50","ふてほど","Bling-Bang-Bang-Born","ホワイト案件","名言が残せなかった","もうええでしょう"]


//例2 オブジェクトの展開
const recentBuzzwords = { "2024年": "ふてほど", "2023年": "アレ(A.R.E.)" };
const pastBuzzwords = { "2022年": "村神様", "2021年": "リアル二刀流/ショータイム", "2020年": "3密" };
const mergedBuzzwords = { ...recentBuzzwords, ...pastBuzzwords };

console.log(mergedBuzzwords); 
//結果 {2024年:"ふてほど",2023年:"アレ(A.R.E.)",2022年:"村神様",2021年:"リアル二刀流/ショータイム",2020年:"3密"}

最後に

自分でコードを書くと、やはり理解が深まります。

人事ネタで作ると、最近の話題もチャッチアップできて一石二鳥ですね。

ちなみに「流行語、野球用語多くない?」と思ったら、
2021~2023年が連続して、それ以前の10年だと1つだけでした。
(2016年の「神ってる」)

次の勉強会も、こんな感じでアウトプットしていきます。
Buzzwords以外の要素を使おうと思います。

0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?