我想更新數組的值,但我得到的是空的。下面是我如何填充數組:更新jquery關聯數組值
var id_status = []; id_status.push({ id:1, status: "true" });
所以基本上我最終創建這個數組JSON對象,但我怎麼通過數組循環更新個人價值觀?這裏就是我試圖做的事:
var id = $(this).attr("id"); id_status[id] = "false";
我希望能夠讓行ID後訪問該項目在數組中,並更新其狀態。
我想更新數組的值,但我得到的是空的。下面是我如何填充數組:更新jquery關聯數組值
var id_status = []; id_status.push({ id:1, status: "true" });
所以基本上我最終創建這個數組JSON對象,但我怎麼通過數組循環更新個人價值觀?這裏就是我試圖做的事:
var id = $(this).attr("id"); id_status[id] = "false";
我希望能夠讓行ID後訪問該項目在數組中,並更新其狀態。
此函數將更新現有狀態或添加具有適當狀態和ID的新對象。
var id_status = [];
id_status.push({ id:1, status: true }); //using actual boolean here
setStatus(1, false);
setStatus(2, true);
//print for testing in Firefox
for(var x = 0; x < id_status.length; x++){
console.log(id_status[x]);
}
function setStatus(id, status){
//[].filter only supported in modern browsers may need to shim for ie < 9
var matches = id_status.filter(function(e){
return e.id == id;
});
if(matches.length){
for(var i = 0; i < matches.length; i++){
matches[i].status = status; //setting the status property on the object
}
}else{
id_status.push({id:id, status:status});
}
}
如果id
將是獨一無二的,讓id_status
這樣
var id_status = {};
id_status[1] = "true"; //Boolean value in String?!?
與id
訪問一個對象直接獲取狀態
console.log(id_status[1]);
因爲,對象就像散列表一樣,訪問元素會更快。
var id_status = {}; // start with an objects
id_status['1'] = {status: true }; // use keys, and set values
var id = this.id; // assuming it returns 1
id_status[id].status = false; // access with the key
在jQuery中沒有數組,在JavaScript中沒有關聯數組? – adeneo
[在JavaScript對象數組中使用id查找對象]的可能重複(http://stackoverflow.com/questions/7364150/find-object-by-id-in-array-of-javascript-objects) – leaf
似乎你會混淆id和索引。首先,閱讀上面的問題以找到具有相應id的對象,然後更新對象,如下所示:'foundObject.status = false'。 – leaf