我正在遍历一个包含多个电话号码作为键和值为对象数组的对象。
我编写了一个reduce方法,将所有日程表都分组在一起,除了一个问题。
如果您运行代码段,则会看到res
是:{trackingNumber:[[Array]]}
我需要对象看起来像这样:{trackingNumber:[Array]}
我持续遇到的问题是尝试通过初始索引弹出或切片或执行任何操作,使得被连接的第一个数组(Object.values(res))基本上将该数组的第一个对象枚举为与追踪号相关联的值的前7个元素。
{trackingNumber:[0:string,1:string,2:string,3:{0 1和2中的字符串对象}]}
非常感谢您的帮助。
let todayNewTollFree = [
{paymentSchedule: [{amount:500},{amount:500},{amount:500},{amount:500},{amount:500},{amount:500},],
tracking: "+18003160182"},
{paymentSchedule: [{amount:500},{amount:500},{amount:500},{amount:500},{amount:500},{amount:500},{amount:500},],
tracking: "+18003160182"
},
{
paymentSchedule: [],
tracking: "+12134105385"
},
{
paymentSchedule: [{amount:500},{amount:500},{amount:500},{amount:500},],
tracking: "+18007084605"
},
{
paymentSchedule:[{amount:500},{amount:500},{amount:500},{amount:500},{amount:500},],
tracking: "+18007100629"
}
]
let test = todayNewTollFree.reduce(function (res, obj) {
let key = obj.tracking;
if (res[key]) {
res[key] = res[key].map((key) =>
[key].flat().concat(obj.paymentSchedule)
);
} else res[key] = [obj.paymentSchedule];
for (const tracking in res) {
let values = Object.values(res[key]).flat();
console.log(tracking);
console.log(values);
}
return res;
}, {});
console.log(test)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
for in
循环可以正确创建一个平面数组,但我每次尝试回去调用或分配追踪新创建的数组都不起作用。