如何使用 linq.js 将字符串数组与对象数组进行比较
how to compare a string array against a array of objects using linq.js
我需要将 ID 字符串数组与对象数组进行比较。我需要将具有匹配 ID 的对象 returned 到一个对象中。我需要使用 linq.js,但不确定该怎么做。
我需要比较的字符串数组:
selectedIds = ["080A8", "032A10", "025A10"]
我需要遍历数组并 return 匹配对象:
[
{"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];
});
我需要将 ID 字符串数组与对象数组进行比较。我需要将具有匹配 ID 的对象 returned 到一个对象中。我需要使用 linq.js,但不确定该怎么做。
我需要比较的字符串数组:
selectedIds = ["080A8", "032A10", "025A10"]
我需要遍历数组并 return 匹配对象:
[
{"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];
});