Handlebars компилирует пустой шаблон без данных, запущенных внутри задачи Gulp

Используя методы Array reduce и findIndex, это может быть достигнуто.

var myArray = [{
  group: "one",
  color: "red"
}, {
  group: "two",
  color: "blue"
}, {
  group: "one",
  color: "green"
}, {
  group: "one",
  color: "black"
}];

var transformedArray = myArray.reduce((acc, arr) => {
  var index = acc.findIndex(function(element) {
    return element.group === arr.group;
  });
  if (index === -1) {
    return acc.push({
      group: arr.group,
      color: [arr.color]
    });
  }
  
  acc[index].color.push(arr.color);
  return acc;
}, []);

console.log(transformedArray);

Используя функцию reduce, массив является итератором, а новые значения сохраняются в параметре acc (accumulating). Чтобы проверить, существует ли объект с заданным group, мы можем использовать функцию findIndex.

Если findIndex() возвращает -1, значение не существует, поэтому добавьте массив в acc параметр.

Если findIndex() возвращает индекс, то обновите index с помощью значений arr.

0
задан Alan 13 July 2018 в 22:38
поделиться

1 ответ

Я решил это, используя еще одну ссылку плагина gulp-data в нижней части документации. Я заменил through.obj на объект gulp-data, и теперь он работает. Я изо всех сил пытаюсь сделать простые вещи с глотком, поэтому мой совет - держаться подальше.

0
ответ дан Alan 17 August 2018 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: