У меня есть следующий json массив объектов в моем коде
var groups = [
{ "gid": 28, "name": "Group 1", "ishidden": false, "isprivate": false },
{ "gid": 16, "name": "Group 2", "ishidden": true, "isprivate": false },
{ "gid": 31, "name": "Group 3", "ishidden": true, "isprivate": false },
{ "gid": 11, "name": "Group 4", "ishidden": false, "isprivate": false },
{ "gid": 23, "name": "Group 5", "ishidden": false, "isprivate": false }
];
Я могу получить доступ или выполнить итерации через это без problm использования jQuery. Однако ситуация возникла, где я должен изменить значение одного из объектов (например, измениться ishidden
свойство к true
для gid: 28
) и затем выполненный некоторый другой jQuery функционируют против него. Действительно ли это возможно? или я должен восстановить целый объект? Если возможно, как я могу достигнуть этого?
любая справка ценилась бы!
Я бы сказал, что ответ Джастина лучше, однако я бы добавил эту тонкую модификацию
var lim = groups.length;
for (var i = 0; i < lim; i++){
if (groups[i].gid == 28){
groups[i].ishidden = true;
break;
}
}
Стиль jQuery будет:
$(groups).each( function() {
if (this.gid == 28) this.ishidden = true;
});
Но в качестве альтернативы вы можете создать индекс:
var index = {};
$(groups).each( function() { index[this.gid] = this; } );
// and then
index["28"].ishidden = true;
Это сэкономит время в долгосрочной перспективе.
Попробуйте следующее:
for (var i = 0; i < groups.length; i++){
if (groups[i].gid == 28){
groups[i].ishidden = true;
break;
}
}