我们的预订平台上有一个嵌套的dataLayer变量。如果我们要拉出一个包含数组中包含的每种产品类型的字符串,则用户可以创建一个或多个变量。但是,调试此程序时遇到错误。
我要收集的变量的位置是:
dataLayer.booking.products [i] .travelType
try{
var productList = {};
for(i=0;i<dataLayer.booking.products.length;i++){
productList[dataLayer.booking.products[i].travelType];
}
return productList.join('|');
}
catch(err){}
我对JS很幼稚,所以我为一个基本问题道歉。
M
答案 0 :(得分:0)
您的代码显示您正在设置对象productList
的新属性,但未定义值,例如{foo: }
,而不是{foo: "bar"}
。它看起来像你想要的是一个的阵列的,您可以添加字符串。例如:
var productList = dataLayer.booking.products.map(function(product) {
return product.travelType;
});
return productList.join('|');
注意,这是使用Array's map
方法,而不受for
环。你也可以定义productList
作为一个前行的数组,然后使用forEach
对products
数组遍历每个项目的方法,但我认为这是更清洁,仍清晰可辨。您可以使用ES6语法进一步减少代码,但是对于您的问题,最好显示定义更清晰的代码。