Превращение массива JavaScript в отдельные переменные - PullRequest
0 голосов
/ 19 февраля 2019

Я надеюсь, что я использую правильные термины, поскольку я новичок в JS, поэтому, пожалуйста, исправьте меня, если термины, которые я использую, неверны.Я собираю sku чисел с моего сайта через dataLayer и превращаю их в переменную с именем DL - Product Detail - SKUs. Когда переменная встречается с ней, она помещается в строку.Некоторые продукты могут встречаться с одной строкой sku (sku1) одного продукта, в то время как на других страницах есть строка sku (sku1, sku2, sku3) с несколькими продуктами.Сейчас я пытаюсь сделать следующее: создать их как отдельные переменные, что-то вроде этого:

  • SKUS: sku1
  • SKUS: sku2
  • SKUS: sku3

Я, честно говоря, понятия не имею, с чего начать.Так что любые предложения будут оценены.У меня есть что-то вроде этого, но я не верю, что это правильное направление, в котором я должен идти.

К вашему сведению {{...}} должны вызывать строку SKU из dataLayer, используя Google Tag Manager.

В _ltk.Activity.AddProductBrowse(productskus); я должен вызывать SKU по отдельности.

(function() { 

    var productskus = "{{DL - Product Details - SKUs}}"; 

    return productskus('|');

    _ltk.Activity.AddProductBrowse(productskus);

    _ltk.Activity.Submit();
});

Я не совсем уверен, как привести хороший минимальный пример, но, возможно, это поможет

Это объект, который проходит через:

    object  
{
  id: '24513',
  model: 'Government',
  skus: '965000050,965000070,965000146,965000147,965000185,965000244',
}

Итак, я создал переменную, которая вызывает skus в строку.

var sku = ('965000050,965000070,965000146,965000147,965000185,965000244')

из этой переменной skuТеперь мне нужно, чтобы каждый элемент был собственным item из-за отсутствия правильного термина.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Я хотел бы продолжить на случай, если у кого-нибудь еще возникнет такая проблема.

Мне пришлось создать еще одну переменную GTM, чтобы разбить строку SKU:

  function(){
    var productSKUs = {{DL - Product Details - SKUs}}.split(',');
    return productSKUs
   }

IМне пришлось обновить мой пользовательский тег HTML, чтобы вызвать переменную split sku, которую я создал выше, и поместить ее в цикл for, чтобы вызвать каждую другую sku:

function() { 

// Repeat this function for every item purchased -> done.
var productsku = {{JS - Split - Skus}};
  for (var i = 0; i < productsku.length; i++) {
    _ltk.Activity.AddProductBrowse(productsku[i]);
}

И как только я запустился, я увидел данныеМне нужно во вкладке сети!

Спасибо за помощь.

0 голосов
/ 19 февраля 2019

Вы можете создать массив SKU, выполнив это.

var productskus = "{{DL - Product Details - SKUs}}";
var skuArray = productskus.skus.split(',');

Получив этот массив, вы можете выполнить итерацию по ним и вызвать метод AddProductBrowse:

skuArray.forEach(function(sku) {
  _ltk.Activity.AddProductBrowse(sku);
});

Я думаю это может быть то, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...