Javascript 收集数组中谁';s键与映射键、值匹配
我的问题是我有一个对象数组和一个键值映射,这些键值在数组中的对象中多次存在。我的最终目标是在旧数组中创建一个新的对象数组,该数组同时匹配贴图的键和值Javascript 收集数组中谁';s键与映射键、值匹配,javascript,node.js,Javascript,Node.js,我的问题是我有一个对象数组和一个键值映射,这些键值在数组中的对象中多次存在。我的最终目标是在旧数组中创建一个新的对象数组,该数组同时匹配贴图的键和值 for example: map: {{"1234", "abcd"},{"4567","efgh"}} array: [ {key: "1234", value1: "abcd"}, {key: "1234&quo
for example:
map: {{"1234", "abcd"},{"4567","efgh"}}
array: [
{key: "1234", value1: "abcd"},
{key: "1234", value1: "jhgfg"},
{key: "4567", value1: "efgh"},
{key: "4567", value1: "poiu"}]
goal: [
{key: "1234", value1: "abcd"},
{key: "4567", value1: "efgh"}]
我就是搞不懂语法。以下是我认为可以使用但无法使用的代码,因为它可以添加所有对象:
for (let [key, value] of dataMap.entries()) {
for (var data in dataIn) {
var keep = dataIn[data];
if (keep.key === key && keep.timestamp === value) {
endData.push(keep);
}
}
}
据我所知,您需要将对象转换为对象数组。你可以这样做:
const mapOfKeysAndValues={
“1234”:“abcd”,
“4567”:“efgh”
}
const keyValuePairs=Object.entries(mapOfKeysAndValues).map(pair=>({
[对[0]]:对[1]
}))
console.log(keyValuePairs)代码>可以通过一个简单的数组#filter()实现
常量映射={
“1234”:“abcd”,
“4567”:“efgh”
},
arr=[
{键:“1234”,值1:“abcd”},
{键:“1234”,值1:“jhgfg”},
{键:“4567”,值1:“efgh”},
{键:“4567”,值1:“poiu”}];
常量res=arr.filter(o=>map[o.key]==o.value1)
console.log(res)
您的映射
结构中的对象无效。请提供可运行的数据