2015-02-18 2 views
0

Данные для моего проекта должно выглядеть примерно так:Задайте значения массива в пределах массива структуры

{ 
"result":"ok", 
"content":[ 
    { 
     "type":"1d", 
     "lower":1359129600, 
     "upper":1359133200, 
     "mean":29.071428571428573 

    },{ 
     "type":"1d", 
     "lower":1359133200, 
     "upper":1359136800, 
     "mean":27.232142857142858 
    }] 
} 

Я пытаюсь присвоить значения ниже, верхний, средний.

var dataResult = {result:"ok", content:[{type:"1d", lower:"", upper:"", mean:""}]}; 
var scope = this; 
    $.ajax({ 
    type: "POST", 
    async: true, 
    url: scope.fetchUrl, 
    data: { query: dataQuery } 
    }) 
    .done(function(data) { 
     for(var i = 0; i < data["reading_list"].length; i++){ 
     dataResult.content[i].lower = convertToUnix(data["reading_list"][i]["ts"]); 
     } 

Я получаю «Uncaught TypeError: Не удается установить свойство„низшее“неопределенных», и я не знаю, где я буду неправильно. Любая помощь будет оценена

+0

ошибка означает, что 'dataResult.content [I]' 'возвращает undefined'. Вы не можете установить свойство на 'undefined'. Простой тест: 'var foo; foo.bar = 42; '. Почему это 'undefined'? Поскольку значение 'i' не является свойством' dataResult.content'. –

ответ

1

Ваш массив «контента» начинается с одного объекта в нем. Если ваш результат ajax имеет более того, то эти записи массива будут undefined.

Прежде чем пытаться выполнить задание, просто убедитесь, что элемент массива имеет объект в нем:

if (!dataResult.content[i]) 
     dataResult.content[i] = {}; 
    dataResult.content[i].lower = convertToUnix(data["reading_list"][i]["ts"]); 
+0

Ошибка больше не существует, но когда я console.log 'dataResult.content.lower', чтобы увидеть результат, он отображается неопределенным. – user2100620

+0

@ user2100620 well 'dataResult.content' - это весь массив; вам нужно зарегистрировать весь массив или отдельные элементы массива. Массив не имеет свойства «lower», но отдельные элементы выполняются. – Pointy

+0

Спасибо! Теперь все это имеет смысл. – user2100620

Смежные вопросы