gpt4 book ai didi

JavaScript Array.prototype.reduce——解构可能不存在的属性

转载 作者:行者123 更新时间:2023-11-30 20:37:46 26 4
gpt4 key购买 nike

鉴于以下数据结构,其中 product_variations 可以有其他 product_variations 作为 child ,我正在寻找一种简洁的算法,它将提取所有作为 child 的“product_variations”到一个“product_variation”,但我只有 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"}]
},
]

我认为 reduce 可能对此有用,因为我可以遍历每个 child_variations,然后使用查找函数从 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 将会出现一些问题(因为它确实存在)

最佳答案

使用array.filter可以提高可读性:

const extractChildrenVariations = (variationItem, variations) => {
return variations.filter(v => variationItem.child_variations.find(cv => cv.sku === v.sku));
}

关于JavaScript Array.prototype.reduce——解构可能不存在的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49624065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com