javascript 我怎样才能限制对象从一个数组中苗条

omvjsjqw  于 2023-08-02  发布在  Java
关注(0)|答案(2)|浏览(81)

我正在搜索关于这个的文档,但我找不到。
我想要的是只显示数组中的4个对象
举例来说:

let data = [
    {id:1, name: 'John'},
    {id:2, name: 'Peter'},
    {id:3, name: 'Stev'},
    {id:4, name: 'Clar'},
    {id:5, name: 'Eyad'},
    {id:6, name: 'Vector'}
]

字符串
那么结果只会显示

John
Peter
Stev
Clar


看起来像ReactJS,因为你只是在map()函数中添加index

pgx2nnw8

pgx2nnw81#

each block允许你迭代一个数组,并给你两个变量:当前元素作为其在数组中的索引。您可以将其与if块结合使用,以检查索引是否在您想要的范围内:
Svelte REPL Link

<script>
    let data = [
    {id:1, name: 'John'},
    {id:2, name: 'Peter'},
    {id:3, name: 'Stev'},
    {id:4, name: 'Clar'},
    {id:5, name: 'Eyad'},
    {id:6, name: 'Vector'}
];
</script>

{#each data as person, index}
    {#if index < 4}
        <p>
            {person.name}
        </p>
    {/if}
{/each}

字符串
或者,您可以先使用.splice(),然后放弃if块:
Svelte REPL link

<script>
    let data = [
    {id:1, name: 'John'},
    {id:2, name: 'Peter'},
    {id:3, name: 'Stev'},
    {id:4, name: 'Clar'},
    {id:5, name: 'Eyad'},
    {id:6, name: 'Vector'}
];
</script>

{#each data.slice(0, 4) as person}
    <p>
        {person.name}
    </p>
{/each}

bq3bfh9z

bq3bfh9z2#

您可以在{#each}的模板中或直接在脚本中应用.slice()。您可以在脚本块中使用任何有效的JS。

{#each data.slice(0, 4) as ...}

个字符
如果data可以改变,而你总是想要前四个元素,你可以使用React式语句:

$: slicedData = data.slice(0, 4)


请注意,如果元素可以以除了追加元素之外的其他方式更改,则数组上的{#each}也应该使用键(参见文档)。

相关问题