考虑到下面的数据结构,product_variations可以有其他的product_variations作为子级,我正在寻找一种简洁的算法,它将提取所有的“product_variations”,这些'product_variations‘都是一个“product_variations”,但是我所拥有的只是SKU。
product_variations: [
{
product_variation_id: "",
variation_name: variation_name,
variation_item_name: "test",
sku: "SKU000",
price: price,
stock: stock,
topLevel: true,
child_variations: [{sku: "SKU001"}]
},
] 我当时认为,减少可能对此有用,因为我可以遍历每个child_variations,然后使用一个find函数从product_variations数组中获取相关的SKU并将其推送到累加器。我正试着让这样的东西发挥作用:
const extractChildrenVariations = (variationItem, variations) => {
return variationItem.child_variations.reduce( (arr, {sku: s}) => arr.push(
variations.find( v => v.sku == s)
), [])
}我认为这可能是问题所在;有时根本就没有任何child_variations。child_variations: [{}]
有人看到我做错什么了吗?我相信,如果SKU在child_variations数组中,那么使用该SKU的variations.find会打开一些东西(因为它确实存在)。
发布于 2018-04-03 07:14:30
它可以使用array.filter更易读。
const extractChildrenVariations = (variationItem, variations) => {
return variations.filter(v => variationItem.child_variations.find(cv => cv.sku === v.sku));
}https://stackoverflow.com/questions/49624065
复制相似问题