---
title: HubLで配列の取得範囲を指定して効率の良いforループを実装する方法
description: HubLのforループは基本的に最初から最後までループするのが当たり前ですが、要件によっては途中から始めたり、途中で終わらせたいなどがあります。そんな場合はif文で分岐すればいいですが、それよりも配列の取得範囲を指定すればもっと効率よく無駄のないループを作ることが可能です。
---

[ブログ｜株式会社アクセサイト ](https://www.accesight.com/blog)

# [HubLで配列の取得範囲を指定して効率の良いforループを実装する方法](https://www.accesight.com/blog/how-to-for-loop-using-array-slcing)

 作成者: [アクセサイト編集担当](https://www.accesight.com/blog/author/accesight_blog)｜2022.9.15

[HubSpot](https://www.accesight.com/blog/why-choose-hubspot)でHubLコードを書いていると頻繁に使用するforループは配列を指定するだけで簡単に実装できます。

forループは基本的に最初から最後までループするのが当たり前ですが、要件によっては途中から始めたり、途中で終わらせたいなどがあります。

そんな場合はif文で分岐すればいいですが、それよりも配列の取得範囲を指定すればもっと効率よく無駄のないループを作ることが可能です。

## 通常のforループ

まずは通常のforループのサンプルコードを見ていきましょう。公式サイトのfor文の説明は[こちら](https://developers.hubspot.jp/docs/cms/hubl/for-loops)です。

このforループは配列の最初から最後まで出力するコードです。

例えば、3つまで表示したい場合は以下のように`if`で対処することができます。

結果 `A B C` と出力されますが、実際は最後までループするので膨大な処理を行う場合に負荷が気になります。

そんな時にコロンを使ったスライスを使用すれば配列を切り出すことができるので効率の良いforループを作ることができます。

## コロンを使ったスライス

コロンを使ったスライスの例は以下です。

2行目の`list`の後ろに`[0:3]`を指定しました。これだけで配列を切り出すことができます。

`[0:3]`は`[start:stop]`と解釈され、`start`は開始位置で`stop`が終了位置です。

例えば`[2:5]`の場合は下図のように`[C, D, E]`が取得できます。

注意点としては`stop`で指定した`5`は`F`を含まない点でしょうか。

配列で値を取得する場合`list[5]`であれば`F`になるため混乱しないよう注意が必要です。

また、このコロンを使ったスライスは`start`と`stop`を省略することが可能で、`stop`を省略して`[2:]`にすると`[C, D, E, F]`、逆に`start`を省略して`[:2]`にすると`[A, B]`が取得できます。

## おわりに

執筆時点では公式ドキュメントに記載されていないため注意が必要かもしれませんが、コロンを使用して配列をスライスすると無駄のないループ処理を実装できるようになります。

また、この方法は文字列にも使用することができるので活用してみてはどうでしょうか。

<https://www.accesight.com/hs/cta/wi/redirect?encryptedPayload=AVxigLKuZD1o1qOf7pQnBtFBPYG%2BGiDQ%2BLRb3UmzcgvA5Ga1SrO4j2L0vi3XWawgfh%2Fj6ODPnD1CBKJ%2BImDNGgm%2BnaN%2FmqO2biNhzUxjwuNRuM%2ByIBXhSP9aN2MTTwWD4nx65OeyMrqkI%2F8WrFvF9T0%2Fko4xhoboy3sBDKOQIbJw8mCDWSmHt997Jg%3D%3D&webInteractiveContentId=128366711573&portalId=4506560>

[完全な記事を表示](https://www.accesight.com/blog/how-to-for-loop-using-array-slcing)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "アクセサイト編集担当"
  },
  "dateModified" : "2024-05-23T08:36:13.632Z",
  "datePublished" : "2022-09-15T01:00:00Z",
  "headline" : "HubLで配列の取得範囲を指定して効率の良いforループを実装する方法",
  "image" : {
    "@type" : "ImageObject",
    "height" : 675,
    "url" : "https://www.accesight.com/hubfs/blog/2022/202209-ms/feat.png",
    "width" : 1200
  },
  "mainEntityOfPage" : "https://www.accesight.com/blog/how-to-for-loop-using-array-slcing",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60.0,
      "url" : "https://www.accesight.com/hubfs/accesight2021/assets/images/common/logo_black_png.png",
      "width" : 188.85155
    },
    "name" : "ブログ"
  }
}
```