如何不使用嵌套循环基于两个现有集合内容创建新对象集合
你可以使用语言内置的集合操作方法实现需求,无需手动编写嵌套循环:
C# 实现(示例语法为C#风格)
使用LINQ的SelectMany方法完成笛卡尔积计算:
using System.Linq; Guid[] guids = ...; string[] names = ...; NewObject[] combined = guids .SelectMany(g => names.Select(name => new NewObject { Guid = g, Name = name })) .ToArray();
JavaScript 实现
如果是JS场景可以用数组的flatMap方法:
const guids = [...] const names = [...] const combined = guids.flatMap(g => names.map(name => ({ guid: g, name: name })))
上述写法只是在语法层面省略了显式嵌套循环的书写,底层执行时的时间复杂度仍然是O(m*n)(m为guids数组长度、n为names数组长度),和手动写嵌套循环的性能基本一致,优势是代码更简洁可读。
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

