gpt4 book ai didi

javascript - 如何使用 linq.js 将字符串数组与对象数组进行比较

转载 作者:行者123 更新时间:2023-12-02 15:47:02 24 4
gpt4 key购买 nike

我需要将 ids 字符串数组与对象数组进行比较。我需要将具有匹配 id 的对象返回到对象中。我需要使用 linq.js,但不知道如何执行此操作。

我需要比较的字符串数组:

selectedIds = ["080A8", "032A10", "025A10"]

我需要循环并返回匹配对象的数组:

[
{"id":"009B4",
"supply":{
"builder":[
{"id":"3629",
"name":"sample name",
"color":"red"}
]
}
},
{"id":"00434",
"supply":{
"builder":[
{"id":"34529",
"name":"sample name two",
"color":"black"}
]
}
}
]

我需要匹配顶层的 id。

这就是我想要开始的:

var selectedObjects = Enumerable.From(array).Where("m=>m.id == '" +  + "'").ToArray();

最佳答案

您不需要 Linq.js 或任何库来实现您的目标。这是一个在 O(n) 时间内解决问题的解决方案,其中 n 是最大数组的大小。

var selectedIds = ["080A8", "032A10", "025A10"];
var list = [
{"id": "009B4",
"supply": {
"builder": [
{"id": "3629",
"name": "sample name",
"color": "red"}
]
}
},
{"id": "00434",
"supply": {
"builder": [
{"id": "34529",
"name": "sample name two",
"color": "black"}
]
}
}
];

var idMap = selectedIds.reduce(function (map, id) {
map[id] = true;
return map;
}, {});

var selectedObjects = list.filter(function(item){
return !!idMap[item.id];
});

关于javascript - 如何使用 linq.js 将字符串数组与对象数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32125374/

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