при запросе аякс обработчик выдает объект с массивом объектов
{"BASKET":[{"BASKET_ID":338466,"BASE_PRICE":2700,"PRICE":1350,"DISCOUNT":1350},{"BASKET_ID":338467,"BASE_PRICE":2800,"PRICE":1400,"DISCOUNT":1400},{"BASKET_ID":338468,"BASE_PRICE":2800,"PRICE":2800,"DISCOUNT":0}]}
когда хочу узнать console.log(data.BASKET.length)
выдает ошибку
Uncaught TypeError: Cannot read properties of undefined (reading 'length')
at Object.success (script.js:427:41)
at c (jquery-3.6.0.min.js:2:28327)
at Object.fireWith [as resolveWith] (jquery-3.6.0.min.js:2:29072)
at l (jquery-3.6.0.min.js:2:79901)
at XMLHttpRequest. (jquery-3.6.0.min.js:2:82355)
basket/?clear_cache=Y:2514 onLoad
let data = {"BASKET":[{"BASKET_ID":338466,"BASE_PRICE":2700,"PRICE":1350,"DISCOUNT":1350},{"BASKET_ID":338467,"BASE_PRICE":2800,"PRICE":1400,"DISCOUNT":1400},{"BASKET_ID":338468,"BASE_PRICE":2800,"PRICE":2800,"DISCOUNT":0}]}
console.log(data.BASKET.length) //3
массив объектов без BASKET
[{"BASKET_ID":338466,"BASE_PRICE":2700,"PRICE":2700,"DISCOUNT":0},{"BASKET_ID":338467,"BASE_PRICE":2800,"PRICE":2800,"DISCOUNT":0},{"BASKET_ID":338468,"BASE_PRICE":2800,"PRICE":1400,"DISCOUNT":1400}]
for (let index = 0; index < data.length; ++index) {
console.log(data[index]);
}
выдает
Скорее всего, вы пытаетесь работать с объектом до того, как получен ответ от сервера. Почитайте про асинхронность в js, это фундамент.
Второй вариант — у вас иная структура ответа. Например, приведённый объект вложен в какой-то другой.