# sinter

### 1. 基本語法

#### sinte&#x72;**(`key`, `[key, ...]` , `callback`)**&#x20;

回傳第一&#x500B;**`key`**&#x5C0D;應集合與其&#x4ED6;**`[key, ...]`**&#x6240;有集合的**交集**，&#x82E5;**`key`**&#x4E0D;存在則被視為空集合。

### **2. 範例**

**(1) 計算第一個集合與第二個的交集**

{% tabs %}
{% tab title="TypeScript" %}
```typescript
const arr1 = ['A', 'B', 'C'];
const arr2 = ['C', 'D', 'E'];

client.sadd('user:1:choice', arr1);
client.sadd('user:2:choice', arr2);

client.sinter('user:1:choice', 'user:2:choice', redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: C
```
{% endtab %}
{% endtabs %}

**(2) 如果`key`只有一個，則sinter功能等同於smembers，會回傳該集合所有成員。**

{% hint style="warning" %}
注意回傳的成員順序不一定會相同。
{% endhint %}

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.del('user:1:choice', 'user:2:choice');

const arr1 = ['A', 'B', 'C'];
client.sadd('user:1:choice', arr1);

client.smembers('user:1:choice', redis.print);
client.sinter('user:1:choice', redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: A,C,B
Reply: A,C,B
```
{% endtab %}
{% endtabs %}
