У меня есть два массива. Первый - это просто список некоторых чисел, скажем, magicNumbers = [1,2,3,15,33]
. Второй один массив объектов, все они имеют свойство magic
, как это: magicObjects = [ { 'magic': 1 }, {'magic: 2}, {'magic': 15} ]
Заполнение разреженного массива нулями (например, застежка на два массива)
Мне нужно создать новый массив, содержащий объекты из magicObject
, в том же порядке, как стоимость magic
собственности в magicNumbers
массиве , а те места от magicNumbers
, которые не имеют соответствующего объекта в magicObjects
, должны быть заполнены null
. В нашем примере, это должно дать: [ { 'magic': 1 }, {'magic: 2}, null, {'magic': 15}, null ]
Это довольно легко реализовать простым способом с _.map()
и _.find()
:
_.map(magicNumbers, function(num) { return _.find(magicObjects, function(v) { return v.magic == num } ) || null; });
Любые идеи, как сделать это правильно в javascript-way, с помощью underscore.js или, может быть, более эффективным?
Спасибо, что это справедливо в моем случае, так как магические значения являются уникальными (я просто использовать '_.indexBy' преобразовать массив карту) – saabeilin