1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「護廷十三隊から裏切り者を除いた隊長達を配列の戻り値にて呼んでください!」

Last updated at Posted at 2022-08-13

~ここBLEACHの世界でのお話...~

隠密機動部隊 「山本総隊長!この尸魂界(ソウルソサエティ)の中に敵が侵入しております。それも我ら護廷十三隊の中に複数名の裏切り者がいるという密告を受けており、一刻も早くその裏切り者達を除いて作戦会議を立てたく存じます。つきましては、裏切り者以外の名前で構成された配列をfunctionの戻り値としていただけますでしょうか?」

山本 元柳斎 重國 「うむ、相分かった」


と言うことで、配列Aの中に配列Bが含まれている場合に配列Bの情報を抜いた配列をいかに短いコードで作ろうか考えた末のエントリです。

初めは考えなしにfor文の2重ループでやればいっかー。とか思っていたんですが、いつまでもそんなことはしていられないですよね。
ということで 配列の処理回数をいかに少なくできるかをモットーにコードを書いたのでその備忘録として書きました。
コードを関数化とすることでそのままコピーすれば皆さんがそのまま手元でも使える様にしています。参考にいただければと思います。

あと、これは基本的にはGoogle App Scriptでコードを書いている時に必要で書いたものですが、基本的にはJSライクにコードも使い回すことができるのでそんな感じの方も参考にしていただければと思います。

GoogleAppScript

const thirteenCourtGuardSquadsArr = [
    "山本元柳斎",
    "砕蜂",
    "市丸ギン",
    "卯ノ花烈	",
    "藍染惣右介",
    "朽木白哉",
    "狛村左陣",
    "京楽春水",
    "東仙要",
    "日番谷冬獅郎",
    "更木剣八",
    "涅マユリ",
    "浮竹十四郎",
];
const enemyArr = ["藍染惣右介", "市丸ギン", "東仙要"];

const allyArr = gotei13(thirteenCourtGuardSquadsArr, enemyArr);

function gotei13(baseArr, partArr) {
    // // こちらのAパターンは処理回数が多くなってしまうので見送り。参考までに
    // let returnArr = [];
    // // パターンA
    // // 処理回数:13回
    // baseArr.forEach((bSub) => {
    //     if (!partArr.includes(bSub)) {
    //         returnArr.push(b_sub);
    //     }
    // });
    // return returnArr;


    // パターンB
    // 処理回数:3回 →Aパターンより短くていいね!
    partArr.forEach((enemyElm) => {
        let index = baseArr.indexOf(enemyElm);
        baseArr.splice(index, 1);
    });

    return baseArr;
    // 期待する戻り値:["山本元柳斎","砕蜂","卯ノ花烈","朽木白哉","狛村左陣","京楽春水","日番谷冬獅郎","更木剣八","涅マユリ","浮竹十四郎"];
}

山本総隊長「うむ、ではallyArrの隊長達を呼べい!」

---以上です---
(※returnも入れると5行以内で書けたので割といいなと思いました。)

=参考記事=

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?