Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新jquery关联数组值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 更新jquery关联数组值

Javascript 更新jquery关联数组值,javascript,jquery,html,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后,我希望能够访问数组中的项并更新其状态。此功能将更新现有状态或添加具有适当状态

我试图更新数组的值,但得到的却是null。以下是我填充阵列的方式:

   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});
    }
}
var id_status=[];
id_status.push({id:1,status:true})//这里使用实际布尔值
设置状态(1,错误);
setStatus(2,正确);
//打印以在Firefox中进行测试
对于(变量x=0;x

JS Fiddle:

如果
id
将是唯一的,请将
id\u status
设置为如下对象

var id_status = {};
id_status[1] = "true";   //Boolean value in String?!?
使用
id
直接访问它以获取状态

console.log(id_status[1]);

由于对象类似于哈希表,因此访问元素的速度会更快。

jQuery中没有数组,javascript中也没有关联数组?可能的重复似乎会混淆ID和索引。首先,阅读上面的问题以找到具有相应id的对象,然后像这样更新对象:
foundObject.status=false
。这个答案很好:
findById(id\u status,id)。status=false
@user2835306请花点时间阅读以下内容:)
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