2012-11-01 37 views
5

Tôi có một hàm mà tôi nhận được một số JSON, và sau đó trích xuất phần tử đầu tiên, dựa trên một số thông tin trong một đối tượng theo nghĩa đen.Đối tượng Javascript theo nghĩa đen. object [i] .variable

Vấn đề của tôi là:

function foo(string){ 
return data[0].string; 
} 

này không hoạt động. Cú pháp chính xác là gì?

Mã đầy đủ là:

var plantaVariables = { 
    humidity : 0, 
    airTemp : 0, 
    soilTemp : 0, 
    soilMoisture: 0, 
    light: 0 
    }; 

    function capitaliseFirstLetter(string){ 
    return string.charAt(0).toUpperCase() + string.slice(1); 
    } 

    for (var i in plantaVariables) { 
    $.ajax({ 
     url: "http://xxx/"+i.toLowerCase(), 
     dataType:"json", 
     async: false, 
     success: function(data){ 
     var string = capitaliseFirstLetter(i); 
     plantaVariables[i] = parseInt(data[0].capitaliseFirstLetter(i)); 
     } 
     }); 
    }; 

Các JSON tôi nhận trông như sau:

[{"PlantId":"1","DateTime":"2012-11-01 13:56:23","Humidity":"37.4"}] 

(với các đối tượng khác). Và tương tự đối với bất kỳ phần tử nào khác trong plantaVariables

Tôi nhận ra rằng đây là câu hỏi mới, nhưng tôi mới sử dụng javascript và tôi đã đập đầu vào màn hình cả ngày. Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!

+0

'trả về dữ liệu [0] [string]' Sử dụng '[]' thay vì '.'. –

Trả lời

6

Bạn nên sử dụng ký hiệu subscript để tìm kiếm một thuộc tính đối tượng bằng cách biểu hiện:

plantaVariables[i] = parseInt(data[0][capitaliseFirstLetter(i)]); 
+0

Cảm ơn bạn! làm cho ngày của tôi! – Cobradelaplaya

1

Hãy nhớ rằng, đối tượng có thể được tham chiếu sử dụng [], giống như mảng.

var string = capitaliseFirstLetter(i); 
plantaVariables[i] = parseInt(data[0][string]); 
+0

Cảm ơn bạn! tuyệt vời – Cobradelaplaya

+0

Bạn đang chào đón :-) –

Các vấn đề liên quan