我正在尝试使用php artisan job:dispatch YourJobNameHere
来获取特定检票口的经济费率。
示例数据:
reduce()
我希望 var data = [
{wicket:0, econ:20 },
{wicket:1, econ:10 },
{wicket:3, econ:45 },
{wicket:0, econ:15 },
{wicket:1, econ:32 }
]
方法返回一个如下所示的对象数组:
reduce()
我想做的是用对象初始化累加器,但是在0: 20, 15
1: 10, 32
3: 45
方法中,我无法弄清楚如何用reduce()
作为key value
来获取所需的对象数组。并且wicket
为values
。
我的代码:
economy
使用上述代码,我得到未定义的行为。
答案 0 :(得分:3)
如果您的data
是Array
而不是Object
(目前还不是,至少不是有效的),那么:
let data = [
{wicket:0, econ:20 },
{wicket:1, econ:10 },
{wicket:3, econ:45 },
{wicket:0, econ:15 },
{wicket:1, econ:32 }
];
let result = data.reduce((acc, curr) => {
if(acc[curr.wicket]) acc[curr.wicket].push(curr.econ);
else acc[curr.wicket] = [curr.econ];
return acc;
},{});
console.log(result);
答案 1 :(得分:1)
您可以使用reduce
对数组进行分组,例如:
var data = [{"wicket":0,"econ":20},{"wicket":1,"econ":10},{"wicket":3,"econ":45},{"wicket":0,"econ":15},{"wicket":1,"econ":32}];
var result = data.reduce((c, v) => {
c[v.wicket] = c[v.wicket] || []; //Initiate the property as empty array of it does not exist
c[v.wicket].push(v.econ);
return c;
}, {});
console.log(result);
||
是一个OR运算符。
这意味着如果c[v.wicket]
存在,它将再次将其分配给c[v.wicket]
。如果没有,请分配一个空数组[]
c[v.wicket] = c[v.wicket] || [];