passion336699
310 天前
SKU Table 渲染就是 求笛卡尔积,知道这个就可以完成 SKU 的组装,渲染这个 Table 。
因为 SKU 组合会随着规格熟悉复选发生顺序上的变化,所以渲染 SKU Table 的时候,你还要单独判断下 SKU 组合是否改变了,如果改变了就将其他属性变成空,没改变,就把 preSkuItem 的其他属性赋值给 nextSkuItem 。
例如,第一次,sku 组装出来是 ['红色', '128'] 设置了其他属性 商品价格:123
后面做了些修改,sku 组装出来是 ['128', '红色'],其实 sku 没有变,你可以把原来的 123 赋值过去,
这样就不用每次渲染 sku table 都清空之前的输入了,体验会好一点。
可以用这个函数,判断两个 string[] 是否有 diff ,
如果 diff === 0 ,俩数组就是相同的,例如:['红色', '128'] 和 ['128', '红色'],
如果 diff > 0 ,俩数组就是不同的,你可以继续 push 到 skus 数组里面。
const DIFFERENCE = (a: string[], b:string[]):string[] => {
const s = new Set(b);
return a.filter((x) => !s.has(x));
};