Возвращаем массив без кавычек - PullRequest
0 голосов
/ 24 апреля 2019

Сценарий

Я хочу отправить гтин продукта в Google Merchant Center.

Что я получаю

"products": ['{"gtin":"5704378978422"}', '{"gtin":"5704378978057"}']

Что я хочу получить

Без одинарных кавычек для каждого элемента массива в формате:

"products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]

Как описано в шаге 3 здесь: https://support.google.com/merchants/answer/7519329

Моя настройка диспетчера тегов Google

  1. Я создал переменную уровня данных {{DLV - ecommerce.purchase.products}} из ecommerce.purchase.products
  2. Я создал переменную Custom Javascript со следующим кодом:

Код:

function() {
  var products = {{DLV - ecommerce.purchase.products}};
  return products.reduce(function(arr, prod) { 
    return arr.concat("{" + '"' + "gtin" + '"' + ":" + '"' + prod.gtin + '"' + "}" ); }, []);
}

Какой лучший способ сделать это

Я новичок в JavaScript, и буду благодарен за любые комментарии и предложения

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Ты хочешь сказать, что хочешь?

const product = ['{"gtin":"5704378978422"}', '{"gtin":"5704378978057"}']
const newProduct = product.map(row => JSON.parse(row))
console.log(newProduct)
0 голосов
/ 24 апреля 2019

Используя функцию concat, вы создаете конкатенацию строк, а не объект. Вы, вероятно, должны использовать map вместо reduce. Как это:

function() {
  var products = {{DLV - ecommerce.purchase.products}};
  return products.map(function(prod) { 
    return {"gtin": prod.gtin};
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...