嗨,我一直在练习关于归约方法的挑战,以真正理解它,但这个话题让我困惑了.
const orders = [
{ livingId: 996, cash: 30500.35, tax: 0.06, isDisputed: true},
{ livingId: 910, cash: 100, tax: 0.08, isDisputed: true },
{ livingId: 912, cash: 4200.11, tax: 0.06 },
{ livingId: 996, cash: 99.12, tax: 0.06, isDisputed: false },
{ livingId: 910, cash: 0.00, tax: 0.08, isShipped: true },
{ livingId: 996, cash: 10, tax: 0.06, isDisputed: true },
];
const result = orders.reduce(
(arr, current) => {
const numOrders = arr.numOrders + 1;
const uniqueId = [...new Set([current.livingId])] //returns [996]
console.log("arr.uniqueId= "+ arr.uniqueId)
console.log("current.livingId= "+ current.livingId)
console.log("current.livingId + arr.uniqueId= "+ uniqueId)
return {
numOrders,
uniqueId,
};
},
{
numOrders: 0,
uniqueId: 0,
},
);
console.log(result)
如何从livingID返回唯一id值的总计数?再加上我目前获得总订单的方法.
预期结果: 订单数:6 LivingID:3
我try 了控制台日志(log)记录多个方法,如Filter、Includes,发现最干净的是新的set方法,但它只返回livingId的最后一个可迭代数组,返回[996].返回的.long肯定是%1而不是%3. 我也try 过这个方法,但它返回了所有值.
const uniqueId = [...new Set([arr.uniqueId, current.livingId])] // 0,996,910,912,996,910,996