объединение фреймов данных в date_index с выходным фреймом данных, включая все уникальные значения date_index

Если вы хотите проверить, что массивы объектов для равенства и порядка не имеют значения, то есть

areEqual([{id: "0"}, {id: "1"}], [{id: "1"}, {id: "0"}]) // true

, вы должны сначала отсортировать массивы. lodash имеет все необходимые инструменты, объединив sortBy и isEqual:

// arr1 & arr2: Arrays of objects 
// sortProperty: the property of the object with which you want to sort
// Note: ensure every object in both arrays has your chosen sortProperty
// For example, arr1 = [{id: "v-test_id0"}, {id: "v-test_id1"}]
// and          arr2 = [{id: "v-test_id1"}, {id: "v-test_id0"}]
// sortProperty should be 'id'

function areEqual (arr1, arr2, sortProperty) {
  return _.areEqual(_.sortBy(arr1, sortProperty), _.sortBy(arr2, sortProperty))
}

EDIT: Поскольку sortBy возвращает новый массив, есть не нужно клонировать ваши массивы перед сортировкой. Исходные массивы не будут мутированы.

Обратите внимание, что для lodash's isEqual порядок имеет значение. Вышеприведенный пример вернет false, если sortBy не применяется к каждому массиву в первую очередь.

0
задан SBF12345 2 March 2019 в 21:03
поделиться