# ltrim

### 1. 基本語法

#### ltri&#x6D;**(`key` , `start`, `stop`)**&#x20;

修剪現有串列，修剪後的串列只留&#x4E0B;**`index`**&#x7BC4;圍&#x5F9E;**`start`**&#x5230;**`stop`**&#x4E4B;間的元素。

{% hint style="warning" %}
一些使用不當的情況如：**`start`**&#x6216;**`stop`**&#x8D85;&#x51FA;**`index`**&#x7BC4;圍，或&#x8005;**`start`**&#x5C0D;&#x61C9;**`index`**&#x5927;&#x65BC;**`end`**&#x5C0D;&#x61C9;**`index`**，雖然不會回報錯誤，**ltrim**回傳值仍為OK，但修剪後會變為「空串列」，失去原列表所有元素。
{% endhint %}

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.del('foo');

const foo_list = ['Hello', 'Such', 'A', 'Beautiful', 'World'];
client.rpush('foo', foo_list);
client.lrange('foo', 0, -1, redis.print);

client.ltrim('foo', 2, -1);
client.lrange('foo', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: Hello,Such,A,Beautiful,World
Reply: A,Beautiful,World
```
{% endtab %}
{% endtabs %}

### 2. 錯誤情境

**ltrim**取值範圍從-1到0，並不會回報錯誤，並修剪成空串列。

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.del('foo');

const foo_list = ['Hello', 'Such', 'A', 'Beautiful', 'World'];
client.rpush('foo', foo_list);
client.lrange('foo', 0, -1, redis.print);

client.ltrim('foo', -1, 0);
client.lrange('foo', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: Hello,Such,A,Beautiful,World
Reply: 
```
{% endtab %}
{% endtabs %}

