Что означает не гарантированный порядок итераций? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть массив объектов, подобных этому

[{name: "a" value: 10}, {name: "b" value: 6}, {name: "c", value: 7}]

[{name: "a" value: 12}, {name: "b" value: 4}, {name: "c", value: 3}]

Теперь я хочу выбрать свойство value первого и второго массивов и сохранить их различие в массиве.

Что означает предостережение: «порядок итераций не гарантирован» от loda sh mean,

При использовании таких методов loda sh, как _.values, он не получает значения в соответствии с индексом объекта, например [10, 6, 7] и [12, 4, 3]

что я должен знать / иметь в виду, встречая предостережение типа "порядок итераций не гарантирован"?

1 Ответ

3 голосов
/ 02 апреля 2020

Нет, _.values не извлекает свойство value каждого объекта. Вы можете сделать это с помощью _.map:

const arr1 = [{name: "a", value: 10}, {name: "b", value: 6}, {name: "c", value: 7}]
_.map(arr1, 'value')
//=>  [10, 6, 7]

или более явно с помощью _.map(arr1, _.property('value')).

_.values предназначено для извлечения всех значений одного объекта, представленного как коллекция пар ключ / значение.

_.values({a: 42, b: 99, c: 'foo'}) //=> [42, 99, 'foo']

Но поскольку loda sh поддерживает работу в JS движках, которые предшествовали спецификации итерации объекта, возможно, что результат в одном из них может быть [42, 'foo', 99] или другой заказ.

...