如何在Foundry函数中将Object Array转换为Object Set?
问题解答
完全可以在函数内部实现对象数组到对象集合的转换,不需要修改函数的输入类型定义。
- 基础转换实现:在函数开头判断输入是否为数组,若是直接用
new Set(数组)完成转换。注意:Set对对象的判断基于引用地址,两个内容一致但内存地址不同的对象会被视为不同元素。 - 代码示例:
function targetFunction(input) { // 内部完成数组到Set的转换 const objSet = Array.isArray(input) ? new Set(input) : input; // 在这里调用objSet的searchAround功能 // ... 你的业务逻辑代码 }
- 按对象内容去重的处理:如果需要基于对象内容而非引用去重,可以先将对象转为字符串存入Set,后续再解析回来:
function targetFunction(input) { let objSet; if (Array.isArray(input)) { // 按对象内容去重的转换逻辑 const stringSet = new Set(input.map(item => JSON.stringify(item))); objSet = new Set([...stringSet].map(str => JSON.parse(str))); } else { objSet = input; } // 使用objSet执行操作 // ... }
内容的提问来源于stack exchange,提问作者Max Magid
相关产品推荐
相关产品推荐

