gpt4 book ai didi

javascript - 多个键的 JSON 过滤运行缓慢

转载 作者:行者123 更新时间:2023-12-02 21:32:39 25 4
gpt4 key购买 nike

我的代码可以运行,但运行速度似乎异常缓慢。

我有一个要搜索的值数组,并且有一个要过滤的 JSON

var JSONPull;
var FilterJSON = [];
var TypeIDs = [34,35,36,37,38,39,40,11399,1230,17470,17471,1228,17463,17464,1224,17459,17460,18,17455,17456,1227,17867,17868,20,17452,17453,1226,17448,17449,21,17440,17441,1231,17444,17445,1229,17865,17866,1232,17436,17437,19,17466,17467,1225,17432,17433,1223,17428,17429,22,17425,17426,11396,17869,17870];

fetch('URL API')
.then(res => res.json())
.then((out) => {
JSONPull = out;
TypeIDs.forEach(function (index){
FilterJSON = JSONPull.filter((element) => {
console.log("index: "+index);
console.log(element);
console.log("type_id: "+ element.type_id);
element.type_id === index;
});
})
})

console.logs 只是为了在测试时观察代码,但绝对不应该导致这些性能问题。

您能否就性能优化提出建议?

最佳答案

您现在执行此操作的方式是,针对您要查找的 ID 数量对每个数据项进行完整循环。我假设您拥有的记录比您要查找的 ID 多得多,因此您应该对此进行一些重构,并在此过程中删除整个回调/闭包。依靠一些浏览器优化的代码。

out.filter(element => TypeIDs.includes(element.type_id))

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

此外,作为审查的一个要点...您的变量大小写是非标准的,并且使得浏览代码变得困难。 (并不是编译器关心...)

而且,console.log()肯定会导致性能问题。

关于javascript - 多个键的 JSON 过滤运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60584633/

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