我的代码中有以下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 }
];
我可以使用jQuery访问或迭代这个没有问题。但是出现了一种情况,我需要更改其中一个项的值(例如,将ishidden
属性更改为true
的{{1}}),然后针对它运行一些其他jQuery函数。这可能吗?还是我必须重新构建整个对象?如果可能,我该如何实现?
任何帮助将不胜感激!
答案 0 :(得分:12)
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;
从长远来看,这将节省一些时间。
答案 1 :(得分:8)
试试这个:
for (var i = 0; i < groups.length; i++){
if (groups[i].gid == 28){
groups[i].ishidden = true;
break;
}
}
答案 2 :(得分:3)
我会说贾斯汀的答案更好,但是,我会添加这个微妙的修改
var lim = groups.length;
for (var i = 0; i < lim; i++){
if (groups[i].gid == 28){
groups[i].ishidden = true;
break;
}
}