Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
如何在jQuery中使用$.each更新数组_Jquery_Arrays_Each - Fatal编程技术网

如何在jQuery中使用$.each更新数组

如何在jQuery中使用$.each更新数组,jquery,arrays,each,Jquery,Arrays,Each,我使用下面给出的JSON.parse()解析了一个数组 var b = [{"pk":"1","name":"Ali","marked":"N" }, {"pk":"2","name":"Zeeshan","marked":"N" }, {"pk":"3","name":"Tariq","marked":"N" }] 这个列表包含大约4000条记录,现在我想更新[2,3]中的marked=“Y”其中的pk。 pk列表长度可以是100。我的问题是,我们如何迭代b并设置marked=“Y”列值中的

我使用下面给出的
JSON.parse()
解析了一个数组

var b = [{"pk":"1","name":"Ali","marked":"N" },
{"pk":"2","name":"Zeeshan","marked":"N" },
{"pk":"3","name":"Tariq","marked":"N" }]
这个列表包含大约4000条记录,现在我想更新[2,3]中的
marked=“Y”
其中的
pk

pk
列表长度可以是100。我的问题是,我们如何迭代b并设置
marked=“Y”
列值中的
pk
位置?

不需要
$。在现代世界中,每个
数组都有
forEach
等(如果确实需要支持像IE8这样的过时浏览器,可以填充)

如果
pk
可以有100个条目,而您要过滤4000条记录,我会构建一个
pk
值的映射并使用它。以下是ES5方法:

var b=[
{“pk”:“1”,“name”:“Ali”,“marked”:“N”},
{“pk”:“2”,“name”:“Zeeshan”,“marked”:“N”},
{“pk”:“3”,“name”:“Tariq”,“marked”:“N”}
];
var pk=[“2”,“3”];
//构建“地图”
var map=Object.create(空);
主键forEach(函数(值){
映射[值]=真;
});
//标记相关条目
b、 forEach(函数(条目){
if(映射[entry.pk]){
entry.marked=“Y”;
}
});
控制台日志(b)试试看

var b=[
{“pk”:“1”,“name”:“Ali”,“marked”:“N”},
{“pk”:“2”,“name”:“Zeeshan”,“marked”:“N”},
{“pk”:“3”,“name”:“Tariq”,“marked”:“N”}
];
变量条件=[“2”,“3”];
$.each(b,函数(索引,值){
if(条件indexOf(值pk)>-1){
value.marked=“Y”;
}
});
控制台日志(b)

这不是JSON。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。我已经显示了已解析的数组。是的,但关键是当您标记这些条目时,您不是在处理JSON,所以JSON与这个问题无关。很抱歉提到$。每个都是jQuery的新成员。@sharafjaffri:不需要道歉!:-)投了赞成票,接受了其他答案,因为它更具解释性。