javascript 如何创建删除重复项的可重用函数

pcww981p  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(166)

我正试图使一个函数尽可能地可重用。
现在我有一个包含"产品"的JSON文件。

export let productList = [
    {
        id: 0,
        productName: "Men's Merrel Hiking Boots",
        price: 65.00,
        brand: "Merrell",
    },
    {
        id: 1,
        productName: "Women's Merrel Hiking Boots",
        price: 65.00,
        brand: "Merrell",
    },
    {
        id: 2,
        productName: "Natural Walking Stick",
        price: 22.00,
        brand: "Fayet",
    }
]

在我的例子中,我试图Map这些产品并返回所有没有重复的品牌。我知道我可以用这个Set函数做到这一点:

function dedupeCheckboxOptions() {
    return [...new Set(productList.map(product => product.brand))];
}

这是可行的,但我正在努力寻找一种方法来使它更可重用。我想它看起来会像这样,所以我也可以使用该函数来返回价格:

function dedupeCheckboxOptions(fullList, item) {
    return [...new Set(fullList.map(product => product.item))];
}

但是,这种语法是不正确的,有没有办法做到这一点?

    • 更新日期:**
function dedupeCheckboxOptions(fullList, item) {
    return [...new Set(fullList.map(product => product[item]))];
}

从@samathingamajig所说的来看,这看起来很有希望,但是当我从JSON文件中传递productList并运行应用程序(React应用程序)时,它说productList未定义。

vatpfxk5

vatpfxk51#

使用方括号表示法属性访问器,因为您使用的是变量。
此外,您不需要传入individualItem,因为当您将其设置为传入回调函数的参数名称时,已经定义了它。

function dedupeCheckboxOptions(productList, item) {
    return [...new Set(productList.map(individualItem => individualItem[item]))];
}

相关问题