更新jquery关联数组值

时间:2013-12-20 12:26:10

标签: javascript jquery html

我正在尝试更新数组的值,但我得到的是null。以下是我填充数组的方法:

   var id_status = []; id_status.push({ id:1, status: "true" });

所以基本上我结束了用这个数组创建一个JSON对象但是如何通过循环遍历数组来更新单个值?这是我试图做的事情:

var id = $(this).attr("id"); id_status[id] = "false";

我希望能够访问数组中的项目并在获取行ID后更新其状态。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

此功能将更新现有状态或添加具有相应状态和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});
    }
}

JS小提琴: http://jsfiddle.net/rE939/

答案 2 :(得分:0)

如果id将是唯一的,请将id_status设为这样的对象

var id_status = {};
id_status[1] = "true";   //Boolean value in String?!?

直接使用id访问它以获取状态

console.log(id_status[1]);

因为,对象就像哈希表,访问元素会更快。