Во-первых, обратите внимание, что JS чувствителен к регистру. Это означает, что data.results
не совпадает с data.Results
и вызовет проблемы.
Что касается вашего вопроса, вам не нужно явно указывать здесь l oop. Предполагая, что есть только один объект, содержащий строку Error Code
, тогда вы можете использовать метод find()
, чтобы получить его:
var error = data.Results.find(o => o.Variable === 'Error Code');
var data = {
"Count": 136,
"Message": "Results returned successfully.",
"SearchCriteria": "VIN:xxxxxxx",
"Results": [{
"Value": "",
"ValueId": "",
"Variable": "Suggested VIN",
"VariableId": 142
},
{
"Value": "0",
"ValueId": "0",
"Variable": "Error Code",
"VariableId": 143
},
{
"Value": "",
"ValueId": "",
"Variable": "Possible Values",
"VariableId": 144
},
{
"Value": null,
"ValueId": "",
"Variable": "Additional Error Text",
"VariableId": 156
}
]
}
var error = data.Results.find(o => o.Variable === 'Error Code');
console.log(error);
Если может быть несколько элементов с одинаковым значением Variable
, вы можете использовать filter()
вместо:
var errors = data.Results.filter(o => o.Variable === 'Error Code');
Просто запомните в в этом случае errors
будет содержать массив, и вам нужно будет получить к нему доступ как таковой.