How can i create new variable based on 2 separate current variable. The main condition is to check the existance of array or widget selector, and then return it's value:
function() {
var array = Array.prototype.slice.apply(document.querySelectorAll("div.widget-message.active.active-target a"));
var length = array.length;
var x = array.map(function(cn, index) {
var nameId = cn.href.split("?")[0].split("/").slice(-1)[0].replace("-", " ");
var urlParams = {{cjs - utility - url params}}(cn.href);
var name = urlParams.promo_name;
var creative = urlParams.promo_content;
return {
"name": "Widget - Personal - " + name,
"id": "Widget - Personal - " + nameId + "-" + index,
"position": "" + (index + 1) + "/" + length,
"creative" : creative,
"metric3": 1
}
});
return {
'ecommerce': {
'promoView': {
'promotions': x
}
}
}
}
and the second one is
function() {
var array = document.querySelector('[class="btn-new btn-fullwidth popup-trigger"]');
return {
'ecommerce': {
'promoView': {
"name": "Widget - Personal - " + array.dataset.targetId
}
}};
}
Combining both functions can be done by checking array.length
in the result of the first selector.
function() {
var array = Array.prototype.slice.apply(document.querySelectorAll("div.widget-message.active.active-target a"));
var x = array.map(function(cn, index) {
var nameId = cn.href.split("?")[0].split("/").slice(-1)[0].replace("-", " ");
var urlParams = {{cjs - utility - url params}}(cn.href);
return {
"name": "Widget - Personal - " + urlParams.promo_name,
"id": "Widget - Personal - " + nameId + "-" + index,
"position": "" + (index + 1) + "/" + array.length,
"creative" : urlParams.promo_content,
"metric3": 1
}
});
if (array.length > 0) {
return {
'ecommerce': {
'promoView': {
'promotions': x
}
}
}
}
array = document.querySelector('[class="btn-new btn-fullwidth popup-trigger"]');
return {
'ecommerce': {
'promoView': {
"name": "Widget - Personal - " + array.dataset.targetId
}
}
};
}
See checking for array.length > 0
. If that selector is found it will return the promotions using x
. Otherwise the code continues and finds the other selector.