我正在使用Stripe API以获得订阅中所有使用过的产品的列表。我正在检查所有订阅,并将用过的产品添加到阵列中(或者我正在尝试)。
我只想添加尚未添加的产品。
router.get('/getusedproducts', asyncHandler(async(req,res,next) => {
var products = [];
for await (const subscription of stripe.subscriptions.list()) {
for (i = 0; i < subscription.items.data.length; i++) {
var prod = subscription.items.data[i].plan.product;
if (!products.includes[prod]){
products.push(prod)
console.log(prod);
}
}
}
res.send(products)
}));
当前,这段代码无法正常工作,因为我仍然看到控制台记录了所有产品。理想情况下,支票!products.includes[prod]
应该可以避免这种情况,但事实并非如此。我已经在此处阅读了几篇有关堆栈的讨论(1)(2)(3)
不确定确切如何将数组中的项目与我从JSON对象获取的新项目进行比较以检查是否存在。
感谢您的帮助。
答案 0 :(得分:-1)
includes是方法,因此必须像somArray.includes(value).
一样使用
请注意,IE或Edge <14不支持include方法。如果您的目标不是IE / Edge <14,则那里没有问题。否则,请使用良好的旧indexOf方法在数组中查找元素。