No entiendo un concepto que implica recorrer una serie de objetos. Además, estamos trabajando con Google Tag Manager, por lo que todavía necesitamos usar la anotación ES5.
Mi caso:
Tenemos una matriz de productos que contiene varios objetos que contienen datos de productos muy específicos (por ejemplo, identificación del producto, precio, nombre, etc.). Sucede que faltan algunos de estos valores (por ejemplo, indefinido, nulo o ''). Estamos tratando de crear una regla que devuelva verdadero siempre que falte uno de estos valores y falso si todos están presentes.
He estado intentando lo siguiente:
function getEmptyEcomValues () { var ecomDatalayer = {{ecommerce}} //the source of our array. This works so far. (see code below) var productArray = ecommerceEvent.products || []; // the problem is in this for loop. I can access the array but not all the keys and their values. for (var item in productArray) { if (productArray[item] == null || productArray[item] == undefined || productArray[item] == "") { return true; } else { return false; } //checkProperties(productArray) } }Este script verifica la matriz pero sigue devolviendo falso. Incluso cuando los valores clave están vacíos.
// if an array looks like this, it should return false. All values are present. [ { name: "Product1", id: "1234", price: "10.00", category: "video games" }, { name: "Product2", id: "5678", price: "15.00", category: "video games" } ] // if an array looks like this, it should return true. It has empty values. [ { name: "", //empty id: "1234", price: "10.00", category: "video games" }, { name: "Product2", id: "5678", price: undefined, //undefined value category: "video games" } ]¿Estoy en el camino correcto aquí?