使用reduce来比较js

时间:2017-12-11 14:51:43

标签: javascript math reduce

我有一个我不明白的简单问题。所以我有这两个数据集

const test = [
    {
        Shift: 2,
        Shift1: 211
    }, 
    {
        Shift: 15,
        Shift1: 111
    },
    {
        Shift: 25,
        Shift1: 111
    }
];


const data = [
    {
        value1: 163,
        value2: 175
    },
    {
        value1: 163,
        value2: 176
    },
    {
        value1: 165,
        value2: 176
    }
];


console.log(test.reduce((a, b) => (a.value1 + a.value2) > (b.value1 + b.value2) ? a : b));

显示测试集时,结果如下:     班次:25,Shift1:111

而我希望得到:

Shift:2, Shift1: 211. 

但是,在显示数据集时,它会返回

value1:165, value2: 175 

正如我所料......为什么会这样?

1 个答案:

答案 0 :(得分:0)

您在 <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="End" Spacing="0" > <Label Text="Hello " FontSize="Medium"/> <Label FontSize="Small">This sould be a text?</Label> <BoxView HeightRequest="1" BackgroundColor="#6fcd11" HorizontalOptions="FillAndExpand" /> <Grid Padding="0" ColumnSpacing="0" RowSpacing="0" BackgroundColor="Aqua" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> <Grid.RowDefinitions> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions > <ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0" Text="Ja"></Button> <Button Grid.Row="0" Grid.Column="1" Text="Nein"></Button> </Grid> </StackLayout> 常量的缩减中使用了错误的键名称...(例如testvalue1)而不是value2和{ {1}}。

请尝试相反 - 它会获得您所需的输出(仅在Chrome的Inspect Element中尝试过)

Shift

...返回

Shift1

您的密钥名称不是非常具有描述性 - 您的对象名称也不是。尝试并考虑您的代码在六个月内对您的看法&#39;你忘记了为什么做了你做过的事情的时候 - 或者类似的,如果有人看到你的代码并且认为是相同的话。

希望这有帮助。