为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Angular 的 ngFor 循环中显示前 3 个数字和后 3 个数字

如何在 Angular 的 ngFor 循环中显示前 3 个数字和后 3 个数字

隔江千里 2022-12-29 15:48:28
你好,我有一个数字列表,比如array = [1,2,3,4,5,6,7,8,9,10]所以在这里使用 *ngFor 我显示如下<div *ngFor =" let data of array">     <p>{{data}}</p>   </div>所以在这里我不想显示所有数字而是我想显示在 1,2,3 .... 8,9,10(包括点)在这里,我遵循了这种技术,但是对于前 3 个数字和点,我该怎么做呢?假设我需要显示前 3 个数字和后 3 个数字,而不考虑数字<li *ngFor="let project of (projects | slice:projects.length - 4);">注意:我无法在 .ts 代码中进行更改,因为我将数据作为嵌套数组获取,因此我需要模板 .html 级别
查看完整描述

4 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

一个快速的方法就是这样做


<div *ngFor =" let data of array; let i = index">

    <p *ngIf="i< 3 || i > array.length - 4 ">{{data}}</p>

  </div>


查看完整回答
反对 回复 2022-12-29
?
萧十郎

TA贡献1815条经验 获得超13个赞

您可以通过创建包含您的逻辑的自定义管道来尝试。


import {Pipe,PipeTransform} from '@angular/core';

@Pipe({

    name: 'arrayfilter',

    pure: true

})


export class ArrayFilterPipe implements PipeTransform {

    transform(itemsArray: any, args?:any): any {

        if(itemsArray.length > 1) {

           return itemsArray.filter((_,i,{length}) =>  

           (i < 3 || i + 3 >= length));

        }

    }

}

HTML 文件如下所示


<div *ngFor =" let data of sample_array | arrayfilter">

    <p>{{data}}</p>

  </div>

我希望这会帮助你。


查看完整回答
反对 回复 2022-12-29
?
精慕HU

TA贡献1845条经验 获得超8个赞

您可以过滤数组并防止较小数组的重复项。


const

    array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];


for (const value of array.filter((_, i, { length }) => i < 3 || i + 3 >= length)) {

    console.log(value);

}


查看完整回答
反对 回复 2022-12-29
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

    <tr *ngFor="let dc of (drdInfo.companyList['data'] | slice:drdInfo.companyList['data'].length - 4)">



查看完整回答
反对 回复 2022-12-29
  • 4 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信