найти минимальное и максимальное значение в объекте, таком как массив - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь найти минимальное и максимальное значение из массива

пробовал разные вещи, но не смог найти решение, удовлетворяющее моим потребностям

У меня есть объект массива, такой как

его значения

{
    0:exchange:bitfix

    totaleth:334

    1:exchange:coinbase

    totaleth:6000

    2:exchange:koinex

    totaleth:3000
}

теперь этот объект, как массив, я хочу показать минимальное и максимальное значения, основанные на итоговом поле, есть ли у 1 решение

Я пробовал разные вещи, такие как сокращение карты для цикла, похоже, ничего не работает

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Хорошо, вы можете использовать функцию сортировки, но помните, что она изменяет исходный массив.

const someArr = [{"_id":"5c585ed5a9a5b931c3057d48","exchange":"Poloniex","totaleth":-338,"dt":"2019-02-04T15:48:37.232Z","__v":0},{"_id":"5c585ed5a9a5b931c3057d47","exchange":"Bitrex","totaleth":-227,"dt":"2019-02-04T15:48:37.222Z","__v":0},{"_id":"5c585ed5a9a5b931c3057d46","exchange":"Gemini","totaleth":86,"dt":"2019-02-04T15:48:37.220Z","__v":0},{"_id":"5c585ed5a9a5b931c3057d45","exchange":"Bitfinex","totaleth":-373,"dt":"2019-02-04T15:48:37.219Z","__v":0},{"_id":"5c585ed4a9a5b931c3057d44","exchange":"Binance","totaleth":6531,"dt":"2019-02-04T15:48:36.586Z","__v":0}];

console.log(
  someArr.sort((a, b) => {
    return a.totaleth - b.totaleth;
  })
);
0 голосов
/ 06 февраля 2019

Ваш код сработал, большое спасибо nina scholz

var array = [{ exchange: 'bitfix', totaleth: 334 }, { exchange: 'coinbase', totaleth: 6000 }, { exchange: 'koinex', totaleth: 3000 }],
    { min, max } = array.reduce(
        (r, o, i) => i
            ? {
                min: r.min.totaleth < o.totaleth ? r.min : o,
                max: r.max.totaleth > o.totaleth ? r.max : o
            }
            : { min: o, max: o },
        undefined
    );
    
console.log('min', min);
console.log('max', max);
0 голосов
/ 05 февраля 2019

Предполагая массив объектов, вы можете уменьшить массив, приняв минимальное и максимальное значения.

var array = [{ exchange: 'bitfix', totaleth: 334 }, { exchange: 'coinbase', totaleth: 6000 }, { exchange: 'koinex', totaleth: 3000 }],
    { min, max } = array.reduce(
        (r, o, i) => i
            ? {
                min: r.min.totaleth < o.totaleth ? r.min : o,
                max: r.max.totaleth > o.totaleth ? r.max : o
            }
            : { min: o, max: o },
        undefined
    );
    
console.log('min', min);
console.log('max', max);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...