【微信小程序】实现根据某一属性值分类渲染数组内容

2023-11-14

需求与效果

实现根据某一属性值分类渲染数组,需求是:
数组如下,渲染在页面上时,根据p_num值进行分组渲染,p_num相同的放在同一容器里,容器外包裹边框。

array: [
{content: "内容1", id: "1", p_num: "1"},
{content: "内容2", id: "2", p_num: "1"},
{content: "内容3", id: "3", p_num: "2"},
{content: "内容4", id: "4", p_num: "2"},
{content: "内容5", id: "5", p_num: "3"},
{content: "内容6", id: "6", p_num: "3"}
]

效果:
在这里插入图片描述

实现

wxml

<view wx:for="{{pNums}}" wx:for-item="pNum">
  <view class="box">
    <view class="border">
      <view wx:for="{{array}}" wx:for-item="item" wx:if="{{item.p_num == pNum && !renderedPNums[pNum]}}">
        <view>{{item.content}}</view>
      </view>
      <view wx:if="{{!renderedPNums[pNum]}}" hidden="{{true}}" bindtap="setRenderedPNums" data-value="{{pNum}}"></view>
    </view>
  </view>
</view>

js

const app = getApp()
Page({
data: {
array: [], // 数组
pNums: [], // 所有的p_num值
renderedPNums: {} // 已经渲染过的p_num值
},
onLoad: function() {
// 初始化数组
this.setData({
array: [
{content: "内容1", id: "1", p_num: "1"},
{content: "内容2", id: "2", p_num: "1"},
{content: "内容3", id: "3", p_num: "2"},
{content: "内容4", id: "4", p_num: "2"},
{content: "内容5", id: "5", p_num: "3"},
{content: "内容6", id: "6", p_num: "3"}
]
})
// 获取所有的p_num值
let pNums = [];
for (let i = 0; i < this.data.array.length; i++) {
if (!pNums.includes(this.data.array[i].p_num)) {
pNums.push(this.data.array[i].p_num);
}
}
console.log(pNums)
this.setData({
pNums: pNums
})
},
// 更新已经渲染过的p_num值
setRenderedPNums: function(e) {
let p_num = e.target.dataset.value;
let renderedPNums = this.data.renderedPNums;
renderedPNums[p_num] = true;
this.setData({
renderedPNums: renderedPNums
})
}
})

wxss

.box {
  margin-top: 20rpx;
}

.border {
  border: 1rpx solid #ccc;
  padding: 20rpx;
}

参考

chatgpt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【微信小程序】实现根据某一属性值分类渲染数组内容 的相关文章

随机推荐

  • RPA技术分享--通过解压 OFD 获取发票信息

    了解RPA www i search com cn 学习RPA https support i search com cn 下载RPA https www i search com cn from csdn 实际上 ofd docx xls
  • sql实现截取字段内容

    场景 出现一批数据需要修复 调用方法进行传参 而存储该字段内容是JSONString呈现 所需的仅仅是其中的某一部分数据 因此需要完成截取 并拼接成想要的格式 使用如下格式调用postman实现自动化执行接口调用 例如 taskId xxx
  • 用GCC生成和调用dll【C语言版】

    今天在网上找了好久 才找到这个能成功运行的视频教程 现在分享给大家 Windows下C语言使用GCC编写和调用dll https www bilibili com video BV1E4411z7Ua share source copy w
  • 颜色识别的实例二

    原图 识别结果 代码 color fuses hdev classify fuses by color dev update window off step set up fuse properties and hue ranges Fus
  • iwebsec靶场 SQL注入漏洞通关笔记6- 宽字节注入

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1 数字型注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2 字符型注入 宽字节注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL
  • (十七)QT生成PDF文件

    在实际情况中 我们有时候会遇到需要把txt html或者图片变成PDF文件的情况 例如把检测结果生成PDF文档给客户等等 QT4使用QPrinter来实现这个功能 QT5修改为QPdfWriter这个类 一 QT5的修改 如果你想在QT5中
  • 思岚RPLIDAR A2 在ubuntu 16.04上的测试

    1 下载雷达ROS包 首先在github上下载rplidar的ros包 下载指令为 默认安装了git git clone https github com Slamtec rplidar ros git 在ubuntu上创建工作空间 并将该
  • 落地领域大模型应知必会(2): 轻量化微调

    编者按 在实际部署大模型的过程中可能会面临资源限制的问题 通过轻量化大模型微调技术 可以将大型预训练语言模型适配到特定领域 特定任务 并减小其模型尺寸和计算量需求 提高性能和效率 在上一篇文章中 我们分享了大语言模型的主要微调技术总览 接下
  • 实验6-6 使用函数验证哥德巴赫猜想 (20分)

    http pta patest cn pta test 13 exam 3 question 478 include
  • iOS 关于NSNotificationCenter

    通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的 Apple 还为我们提供了另一种通知响应方式 那就是 NSNotification NSNotificationCenter 较之于 Delegate 可以实现更大
  • 计算机视觉OpenCV-图像直方图

    欢迎来到本博客 作者简介 目前计算机研究生在读 主要研究方向是人工智能和群智能算法方向 目前熟悉python网页爬虫 机器学习 计算机视觉 OpenCV 群智能算法 然后正在学习深度学习的相关内容 以后可能会涉及到网络安全相关领域 毕竟这是
  • 100家企业近年面试题整理

    打造最受企业欢迎的iOS开发者 一直都存在的问题 什么样的员工最受企业欢迎 一直也有人在努力提升自己 成为受企业欢迎的员工 然而 我们应该往方向去提升自己呢 100家知名企业今年来iOS面试题合集 你要的这里都有 企业要的这里也有 从基础开
  • Unity Resources资源管理的优点和痛点

    1 1 Resources详解 我觉得 Resources之所以能被广泛的使用 是因为它的使用非常简单 并且是同步加载 一般来说 正式的商业项目 对外发布资源的时候都是使用AssetBundles的方式进行 AssetBundles的方式有
  • re.compile(pattern,flags=0)中flags的用法

    re正则表达式模块还包括一些有用的操作正则表达式的函数 下面主要介绍compile函数 定义 compile pattern flags 根据包含正则表达式的字符串创建模式对象 通过python的help函数查看compile含义 1 he
  • 【数电】如何使用74LS112(或74LS74)构成一个十四分频器(模七计数器)

    IT精英们 大家都学过数字电子技术吧 尽管这东西没用 不过这些基础课程对思维的培养还是很有好处的 我不爱上课 但不代表我不喜欢数电 我们实验课老师为了加强实验难度 把实验题改掉了 用74LS112 或者74LS74 设计一个十四分频器 原来
  • PHP文件包含

    本地文件包含 打开PHPstudy 打开网站根目录 创建文件 文件内容为 在浏览器上查看所包含文件 远程文件包含 文件include php文件内容 print txt文件内容 远程查看print txt 远程包含shell shell t
  • zookeeper入门到精通03——zookeeper集群搭建

    zookeeper集群搭建 3 1 多虚拟机环境搭建 3 2 zookeeper集群搭建 3 1 多虚拟机环境搭建 我们需要搭建zookeeper集群 而由于zookeeper的的服务器数量需要设置为单数 前文介绍了原因 一个zookeep
  • 2023年第47届(第二届)浙江技能大赛网络安全项目 (世赛省选拔赛)A模块解析

    2023年第47届 第二届 浙江技能大赛网络安全项目 世赛省选拔赛 A模块解析 模块A 企业基础设施安全 1 竞项赛目简介 1 1 介绍 1 2 任务描述 1 3 竞赛说明 2 竞赛项目工作任务 2 2 操作系统安全加固 2 2 1 Win
  • OpenCV3.4.13+OpenCV_contrib 双摄像头实时拼接 环境配置

    如题 基于OpenCV3 4 13 VS2015做了个双摄像头实时拼接的代码 是一个大项目的一个baseline的一部分 下面先说配环境再给代码 环境配置 关于OpenCV VS的环境配置网上已经有很多了 因为这份代码用到了OpenCV C
  • 【微信小程序】实现根据某一属性值分类渲染数组内容

    需求与效果 实现根据某一属性值分类渲染数组 需求是 数组如下 渲染在页面上时 根据p num值进行分组渲染 p num相同的放在同一容器里 容器外包裹边框 array content 内容1 id 1 p num 1 content 内容2