Tabulator中能否用两个数组实现Autocomplete动态赋值替代硬编码用户信息
用两个数组生成Tabulator Autocomplete的values配置
当然可以实现!完全不用硬编码键值对,只要把你手里的标识数组和姓名数组转换成Tabulator需要的对象格式就行,我给你具体示例:
首先假设你有两个顺序一一对应的数组:
// 存储用户名标识的数组 const userIds = ["jd1", "mm12", "ls3"]; // 存储用户真实姓名的数组(和上面的索引位置严格对应) const userNames = ["John Doe", "Marty McFly", "Lara Smith"];
接下来把它们转换成Autocomplete编辑器需要的键值对对象,有两种常用实现方式:
方式一:普通循环遍历
const userValues = {}; for(let i = 0; i < userIds.length; i++) { userValues[userIds[i]] = userNames[i]; }
方式二:用Array.reduce简洁实现
const userValues = userIds.reduce((acc, id, index) => { acc[id] = userNames[index]; return acc; }, {});
最后把生成好的userValues对象替换到列配置的editorParams.values中即可:
{ title:"Approver", field:"Approver", editor:"autocomplete", editorParams: { values: userValues // 这里用转换后的动态对象代替硬编码内容 } }
⚠️ 重要提醒:务必保证两个数组的索引顺序完全匹配,否则会出现标识和姓名对应错误的问题!
内容的提问来源于stack exchange,提问作者xAnimatorx
相关产品推荐
相关产品推荐

