当前位置: 首页 > news >正文

find数组方法详解||Vue3 + uni-app + Wot Design(wd-picker)使用自定义插槽内容写一个下拉选择器

介绍一个 Vue3 + uni-app + Wot Design(wd-picker) 的组件片段,功能是一个下拉选择器,用于选择“市场”,选择后会触发数据更新。

<wd-picker:columns="marketColumns"   <!-- 下拉数据源 -->v-model="value"            <!-- 当前选中值 -->use-default-slot           <!-- 启用自定义触发区 -->@confirm="onMarketChange"> <!-- 点“确定”后回调 --><!-- 自定义触发区:显示文字 + 下拉图标 --><view class="market-name"><view class="market-name__txt">{{ getLabel(value) }}</view><img class="pull-icon" src="xxx.png"/></view>
</wd-picker>
const { sc: dictSc } = useDict(['sc']);   // 拿到原始市场字典
const marketColumns = computed(() => [               // 拼“全部”选项{ label: '全部市场', value: '' },...dictNcpSc.value
]);
function onMarketChange(e) {   // e = { value, label ... }marketId.value = e.value;    // 保存 idgetListData(e.value);        // 重新拉接口数据
}
const getLabel = val =>marketColumns.value.find(item => item.value === val)?.label   // 可选链|| '全部市场';                                           // 兜底

要点

  1. columns 必须是 { label, value }[] 格式。

  2. v-model 只存 value,不存 label

  3. use-default-slot 才能完全自定义外观。

  4. 字典里没有“全部市场”,所以用计算属性拼接。

  5. 回显的时候使用find方法查找到匹配的市场。

Array.prototype.find详解

1.Array.find 精讲

const elem = arr.find((element, index, array) => {/* 返回布尔值 */
}, thisArg);
  • 返回值:第一个使回调返回 true 的元素,否则 undefined

  • 时间复杂度:O(n),早停

  • 原数组不变

  • thisArg:可选,绑定回调内 this(箭头函数无效)

find 返回第一个满足条件的元素;找不到返回 undefined;回调参数 (element(谁), index(排第几), array(一共多少人));thisArg 绑定 this

① 只用 element(90% 场景)

按主键查找,返回对象

const users = [{id: 3, name: 'Bob'}, {id: 5, name: 'Alice'}];
const alice = users.find(u => u.id === 5);

② 用到 index

index ≥ 2 且值 > 8

const arr = [7, 4, 9, 12];
const first = arr.find((n, i) => n > 8 && i >= 2); // 9

③ 用到原数组引用

利用 a[i+1] 看后一项

const arr = [1, 3, 5, 7];
const hit = arr.find((n, i, a) => i < a.length - 1 && a[i + 1] === n + 2);
// 返回 5,因为 5 后面是 7,差 2

④ thisArg 场景

回调内 this 指向 m

class Threshold {constructor(t) { this.t = t; }ok(n) { return n > this.t; }
}
const m = new Threshold(10);
const arr = [4, 11, 6, 20];
const res = arr.find(function (n) { return this.ok(n); }, m);
// 返回 11

http://www.dtcms.com/a/414143.html

相关文章:

  • 怎么找做网站平台公司技术支持 湖北网站建设
  • 大型活动临时组网的技术解析:如何实现高效稳定的通信网络
  • 个人博客网站实验报告wordpress 页面新建
  • ZYNQ CAN接口全面解析:从裸机驱动到PetaLinux实战
  • AI 重构实体经济:2025 传统产业转型的实践与启示
  • 安宝特产品丨FME Realize:重构数据与现实的边界,让空间计算赋能现场决策
  • 第二篇: `nvidia-smi` (下) - 自动化监控与脚本
  • 配音与字幕不同步?音视频协同生成的技术原理与落地实践
  • p2p信贷网站建设永州网站建设优化
  • 批次标准化学习(第十六周周报)
  • .NET Core 中 System.Text.Json 与 Newtonsoft.Json 深度对比:用法、性能与场景选型
  • 高通平台 WLAN学习-- 性能优化优化实践:从代码层面解析 P2P 连接性能提升方案
  • 企业应该如何建设网站建立网站的信息集成过程
  • 做股权众筹的网站中国官网
  • 帆软Report11多语言开发避坑:法语特殊引号导致SQL报错的解决方案
  • ODPS SQL,对group by里每个group用python进行处理
  • (基于江协科技)51单片机入门:4.矩阵键盘
  • PPT auto Crorrector
  • MSSQL字段去掉excel复制过来的换行符
  • 学前端视频笔记
  • 【Navicat实现 SQL Server 异地 定时备份】
  • GitOps实战:ArgoCD+Tekton打造云原生CI/CD流水线
  • (基于江协科技)51单片机入门:3.静态数码管
  • 团支部智慧团建网站Wordpress调用搜索
  • 什么是ppm,ppb,ppt?
  • LeetCode 389 找不同
  • gitlab解决合并冲突本地处理的步骤
  • 趣谈Bug -500英里邮件问题
  • 洛阳天艺网络做网站怎么样自适应型网站建设方案
  • 沧州市网站优化排名网站开发的过程中遇到的难题