Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较和减少复杂的对象数组_Javascript_Arrays_Node.js_Ecmascript 6_Reduce - Fatal编程技术网

Javascript 比较和减少复杂的对象数组

Javascript 比较和减少复杂的对象数组,javascript,arrays,node.js,ecmascript-6,reduce,Javascript,Arrays,Node.js,Ecmascript 6,Reduce,我有一个``数据集,它是数据库中某些项目的一个对象数组,它详细说明了要装运的特定项目在estimatedDays中需要多长时间: items : [ { id: '1' shippingMethods: [ { id: 'STANDARD', estimatedDays: 3, }, { id: 'TWODAY', estimatedDays: 2,

我有一个``数据集,它是数据库中某些项目的一个对象数组,它详细说明了要装运的特定项目在
estimatedDays
中需要多长时间:

items : [
    {
    id: '1'
    shippingMethods: [
        {
        id: 'STANDARD',
        estimatedDays: 3,
        },
        {
        id: 'TWODAY',
        estimatedDays: 2,
        },
        {
        id: 'NEXTDAY',
        estimatedDays: 1,
        },
    ]
    },
    {
    id: '2'
    // same shipping data as above but standard shipping will take 4 estimatedDays
    },
    {
    id: '3'
    // same shipping data as above but TWODAY shipping will take 3 estimatedDays
    },
]
我想知道是否有一个reduce函数可以比较每个项目中的每个
shippingMethod.id
,并仅在
shippingMethod.estimatedDays
与所有项目相比最大的位置返回一个新数组


因此,end数组将是一个对象数组(在本例中)具有3种装运方法:标准、TWODAY和NEXTDAY。

这里使用
reduce
方法

var项目=[
{
id:'1',
装运方法:[
{
id:'标准',
估计日期:3
},
{
id:‘两天’,
估计日期:2
},
{
id:“下一天”,
估计日期:1
},
]
},
{
id:'2',
装运方法:[
{
id:'标准',
估计日期:4
},
{
id:‘两天’,
估计日期:2
},
{
id:“下一天”,
估计日期:1
},
]
},
{
id:'3',
装运方法:[
{
id:'标准',
估计日期:3
},
{
id:‘两天’,
估计日期:3
},
{
id:“下一天”,
估计日期:1
},
]
},
];
var OUTPITEMS=项目.减少(功能(累计、当前){
if(当前装运方法){
如果(累计长度>0){
对于(变量i=0;i控制台日志(outItems)这里使用
reduce
方法

var项目=[
{
id:'1',
装运方法:[
{
id:'标准',
估计日期:3
},
{
id:‘两天’,
估计日期:2
},
{
id:“下一天”,
估计日期:1
},
]
},
{
id:'2',
装运方法:[
{
id:'标准',
估计日期:4
},
{
id:‘两天’,
估计日期:2
},
{
id:“下一天”,
估计日期:1
},
]
},
{
id:'3',
装运方法:[
{
id:'标准',
估计日期:3
},
{
id:‘两天’,
估计日期:3
},
{
id:“下一天”,
估计日期:1
},
]
},
];
var OUTPITEMS=项目.减少(功能(累计、当前){
if(当前装运方法){
如果(累计长度>0){
对于(变量i=0;i控制台日志(outItems)你可以查看我下面的答案你可以查看我下面的答案谢谢。在你看来有没有更好的方法呢?谢谢你。在你看来,有没有更好的方法?