Nano Hash - криптовалюты, майнинг, программирование

Заказ LodashВозвратив пустой массив

Я пытаюсь упорядочить массив с объектами в порядке возрастания, используя модуль lodash.orderBy npm.

это пример объекта, который я использую

var obj = [{ user: 'me', score: 100}, { user: 'you', score: 55}, { user: 'someone', score: 555 }]

Получив этот объект, я передаю его в качестве первого параметра и указываю, какой ключ использовать для orderBy.

let sort = orderBy(obj, 'score')

Но это возвращает пустой массив, что-то я делаю неправильно? на основе документации это правильно: https://lodash.com/docs/4.17.4#orderBy

Это может быть проблема с асинхронным вызовом и сообщением, что индекс массива равен 0.

ИЗМЕНИТЬ:

введите здесь описание изображения

Расширенный

02.03.2017

  • Вы куда-то импортируете lodash? Вы должны использовать lodash.orderBy, а не функцию саму по себе. 02.03.2017
  • @Valberправильно, я импортирую, например, import orderBy из 'lodash.orderby' 02.03.2017
  • Вы должны делать что-то не так, потому что ваш пример работает для меня. 02.03.2017

Ответы:


1

Кажется, что вы на самом деле не вызываете orderBy() для объекта lodash. Попробуйте следующий код:

JS

const _ = require('lodash');

var obj = [[{
    user: 'me',
    score: 100
},{
    user: 'you',
    score: 55
},{
    user: 'someone',
    score: 555
}]]

var data = obj[0];

let sort = _.orderBy(data, 'score');

console.log(sort);

Создал новую переменную data и присвоил ей значение obj[0], эффективно назначив ей массив. Затем Lodash может упорядочить данные, как и ожидалось.

Вывод в консоль (оценка в порядке возрастания по умолчанию)

  [ { user: 'you', score: 55 },
  { user: 'me', score: 100 },
  { user: 'someone', score: 555 } ]

Возможное решение для вашего кода

let obj = this.state.items;
let data = obj[0];
let sort = lodash.orderBy(data, 'score');
console.log(sort);
02.03.2017
  • Сам orderBy работает со статическим содержимым, я считаю, что проблема в том, что это асинхронные данные, поэтому массив с 10 элементами регистрируется как Array[0], а не Array[9] 02.03.2017
  • Вы используете обратный вызов? 02.03.2017
  • Это веб-приложение React, использующее API-интерфейс Fetch, поэтому после запроса на получение я устанавливаю состояние с возвращаемым объектом, а затем вывожу его из журнала, который возвращает Array[0], но внутри него есть элементы. Я думаю, что lodash запутался и думает, что это пустой массив. 02.03.2017
  • Не могли бы вы загрузить скриншот одного из object расширенных, пожалуйста 02.03.2017
  • Итак, все объекты добавляются в массив внутри массива? @риззи 02.03.2017
  • У меня есть forEach, который получает каждую из этих статей, а затем вставляет ответ (объекты) в массив, используя array.push(response) 02.03.2017
  • @rizzy Проверьте мое последнее обновление ответа, я только что попробовал, работает для меня, попробуйте и внедрите его для работы с вашим решением :) Если вам нужна помощь, просто спросите 02.03.2017
  • К сожалению, та же проблема, она должна быть связана с запросами на выборку. Спасибо за помощь. 02.03.2017
  • @rizzy Вы уверены, что определенно вызываете orderBy() для объекта lodash? 02.03.2017
  • Конечно, оказывается, когда я добавляю setTimeout, он работает нормально. Было связано с асинхронными вызовами и отсутствием данных. 02.03.2017
  • @rizzy Рад слышать, что ты это исправила! 02.03.2017
  • Спасибо за вашу помощь, я постараюсь найти способ дать вам положительный отзыв :) 02.03.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..