0

キーの 1 つを無視しながら、lodash を使用してオブジェクトのコレクション内の最大セル値を見つけるにはどうすればよいですか。

var data = [{
            tick: 0,
            valueA: 3,
            valueB: 2
        }, {
            tick: 6,
            valueA: 6,
            valueB: 3
        }, {
            tick: 12,
            valueA: 2,
            valueB: 4
        }, ...];

最大の目盛りを見つけたいです。これは行識別子であり、のすべての値の最大値です。私がこれまでに持っているものは次のとおりです。

var maxTick = _.max(data, 'tick'),
    maxValue = _.max(data, function(o) { return _.max(_.values(o))};);

maxValueティックデータを無視するにはどうすればよいですか?

4

3 に答える 3

0

_.pick() を使用して tick 以外のすべてのキーを選択し、その新しいコレクションで max 関数を実行してみてください。ところで、あなたの maxValue 関数は正しくないようです。任意のオブジェクトで最高のスカラー値を取得したいということですか、それとも最高のスカラー値 (ティックを除く) を含むオブジェクトを取得したいということですか?

更新: あなたの応答に基づいて、これを試してください: http://jsfiddle.net/tonicboy/Xxf9E/1/

var data = [{
            tick: 0,
            valueA: 3,
            valueB: 2
        }, {
            tick: 6,
            valueA: 6,
            valueB: 3
        }, {
            tick: 12,
            valueA: 2,
            valueB: 4
        }],
    data2 = [];

_.each(data, function(element, index) {
    var values = _.values(_.omit(element, 'tick'));
    data2 = data2.concat(values);
});

console.log(data2);
console.log(_.max(data2));
于 2013-12-06T20:13:01.443 に答える