#javascript #jquery #json
#javascript #jquery #json
Вопрос:
я хочу выполнить итерацию json, чтобы получить последний элемент. Я пытался найти длину json, но длина показывает 296 что-то. есть что-то, чего я не знаю .. как выполнить итерацию.
Итерация Json и получение последних элементов id: 005 and text: GHI
. Я пытаюсь сделать это таким образом.
jQuery
var json= ( JSON.stringify($(target).select2('data')) );
alert(selections.length);
$.each($.parseJSON(json), function(key,value){
var id = this.id;
var text = this.text;
console.log(id " " text);
});
JSON
[
{
"id": "001",
"text": "DEF",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "002",
"text": "JKL",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "003",
"text": "MNO",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "004",
"text": "ABC",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "005",
"text": "GHI",
"element": [
{
}
],
"disabled": false,
"locked": false
}
]
Комментарии:
1. Зачем преобразовывать в JSON только для того, чтобы вернуться назад и проанализировать его?
Ответ №1:
- Сохраните ваш JSON в переменной
- Используйте
varName.length-1
для достижения последнего элемента в массиве
ДЕМОНСТРАЦИЯ
var json = [{
"id": "001",
"text": "DEF",
"element": [{
}],
"disabled": false,
"locked": false
}, {
"id": "002",
"text": "JKL",
"element": [{
}],
"disabled": false,
"locked": false
}, {
"id": "003",
"text": "MNO",
"element": [{
}],
"disabled": false,
"locked": false
}, {
"id": "004",
"text": "ABC",
"element": [{
}],
"disabled": false,
"locked": false
}, {
"id": "005",
"text": "GHI",
"element": [{
}],
"disabled": false,
"locked": false
}];
var $last = json[json.length - 1];
alert($last.id);
alert($last.text);
Ответ №2:
Вы имеете дело с массивом Javascript. Использование длины для получения последнего индекса действительно будет работать:
var json = JSON.stringify( $(target).select2('data') );
var lastObject = json[json.length - 1];
var id = lastObject.id;
var text = lastObject.text;
console.log( id " " text );
Помните, что индексы начинаются с 0, поэтому вы должны вычесть 1 из длины, чтобы получить желаемый индекс.
Ответ №3:
var h = [
{
"id": "001",
"text": "DEF",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "002",
"text": "JKL",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "003",
"text": "MNO",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "004",
"text": "ABC",
"element": [
{
}
],
"disabled": false,
"locked": false
},
{
"id": "005",
"text": "GHI",
"element": [
{
}
],
"disabled": false,
"locked": false
}
];
var len = h.length;
console.log(len); //prints 5
console.log(h[len-1].id); //prints 005
console.log(h[len-1].text); //prints GHI