gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:02:27 27 4
gpt4 key购买 nike

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

var b = [{"pk":"1","name":"Ali","marked":"N" },
{"pk":"2","name":"Zeeshan","marked":"N" },
{"pk":"3","name":"Tariq","marked":"N" }]

此列表包含大约 4000 条记录,现在我想更新 marked = "Y",其中 pk 位于 [2,3] 中。pk 列表长度可能是 100。我的问题是,我们如何迭代 b 并设置 marked="Y" 其中 pk 位于列表中值(value)观?

最佳答案

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

如果 pk 可以有 100 个条目,并且您要过滤 4,000 条记录,我会构建一个 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"];

// Build the "map"
var map = Object.create(null);
pk.forEach(function(value) {
map[value] = true;
});

// Mark relevant entries
b.forEach(function(entry) {
if (map[entry.pk]) {
entry.marked = "Y";
}
});
console.log(b);

这避免了不断调用pk.indexOf(entry.pk)来查看是否应该标记条目,这需要每次重新扫描数组。相反,它利用 JavaScript 引擎的对象属性查找代码,该代码在现代浏览器上进行了高度优化(即使未优化,它也可能是某种 HashMap 或类似的,但现在他们进行了优化)。 p>

如果您确实想要使用$.each,只需更改

pk.forEach(function(value) {

$.each(pk, function(_, value) {
// Note ------------^

对于稍后的b循环也是如此。 $.each 使用条目的索引作为第一个参数,然后然后值来调用回调。

关于jquery - 如何在 jQuery 中使用 $.each 更新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37922155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com