如何使用JavaScript实现SKU属性值的笛卡尔积组合生成
JavaScript 生成SKU笛卡尔积组合实现方案
实现思路
- 先提取输入数组中所有元素的
prop2属性,得到待组合的二维数组 - 基于数组reduce方法实现通用笛卡尔积计算逻辑
- 对计算得到的组合结果按要求格式化输出
完整实现代码
// 通用笛卡尔积计算函数 function cartesian(arr) { return arr.reduce((prev, curr) => { const res = [] prev.forEach(p => { curr.forEach(c => { res.push(p.concat([c])) }) }) return res }, [[]]) } // 输入数组示例 const input = [ {prop1: 'abc', prop2: ['1', '2', '3']}, {prop1: 'xyz', prop2: ['8', '6']} ] // 提取所有prop2属性的数组 const propList = input.map(item => item.prop2) // 计算笛卡尔积 const result = cartesian(propList) // 按要求格式化输出结果 const formattedResult = result.map(item => `(${item.join(',')})`) // 打印输出 formattedResult.forEach(item => console.log(item))
输出结果
运行代码后输出内容和要求完全一致:
(1,8) (1,6) (2,8) (2,6) (3,8) (3,6)
扩展说明
如果后续需要新增更多属性维度,仅需在input数组中新增对应元素即可,核心计算逻辑无需修改,可自动适配多维度SKU组合生成。
内容的提问来源于stack exchange,提问作者H John
相关产品推荐
相关产品推荐

