Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从两个对象中获取相应的值_Javascript_Lodash - Fatal编程技术网

Javascript 如何从两个对象中获取相应的值

Javascript 如何从两个对象中获取相应的值,javascript,lodash,Javascript,Lodash,我有第一个数据对象,它有一个cafe列表,第二个数据对象有一个cafe类型列表 我需要从第一个数据对象中查找、获取并显示相应的类型值和第二个数据对象中的ID值 例如:在咖啡馆列表中,我有一个带有“type”的品脱:“3”,这意味着3是来自第二个对象的条 第一个目标: { "list": { "item": [ { "ID": "31", "name": "Staut", "ty

我有第一个数据对象,它有一个cafe列表,第二个数据对象有一个cafe类型列表

我需要从第一个数据对象中查找、获取并显示相应的类型值和第二个数据对象中的ID

例如:在咖啡馆列表中,我有一个带有
“type”的品脱:“3”
,这意味着3是来自第二个对象的

第一个目标:

{
  "list": {
      "item": [
          {
              "ID": "31",
              "name": "Staut",
              "type": "1",
          },
          {
              "ID": "34",
              "name": "Pinta",
              "type": "3",
          }
      ]
   }
}
第二个目标:

{
  "list": {
      "item": [
          {
              "ID": "1",
              "name": "Restaurant",
          },
          {
              "ID": "2",
              "name": "Cafe",
          },
          {
              "ID": "3",
              "name": "Bar",
          }
      ]
   }
}
我可以用洛达斯来做。它是正确的,但我不能显示它,它使用高内存

getValues: function() {
  _.forEach(CafeJSON.list.item, function(cafeValue) {
    _.forEach(TypeJSON.list.item, function(typeValue){
      if (cafeValue.type == typeValue.ID) {
        console.log("Cafe name is: ", cafeValue.name, "and type is: ", typeValue.name)
      }
    })
  })
}
结果


我将types对象简化为一个具有键值对的对象,其形式为
'3':'Bar'
,然后循环一次项,覆盖
type
属性的值

let list={
“名单”:{
“项目”:[{
“ID”:“31”,
“名称”:“Staut”,
“类型”:“1”,
},
{
“ID”:“34”,
“名称”:“品塔”,
“类型”:“3”,
}
]
}
}
让类型={
“名单”:{
“项目”:[{
“ID”:“1”,
“名称”:“餐厅”,
},
{
“ID”:“2”,
“名称”:“咖啡馆”,
},
{
“ID”:“3”,
“名称”:“酒吧”,
}
]
}
}
让typesSimplified=types.list.item.reduce((a,b)=>{
a[b.ID]=b.name;
返回a;
}, {});
list.list.item.forEach(e=>{
e、 type=typesSimplified[e.type];
});

控制台日志(列表)另外,您使用的是文本,而不是JSON。JSON是一个字符串,表示JavaScript的子集。@EmileBergeron这是我从后端获得的JSON。一旦收到,它将被解析,不再是JSON。请查看上面代码@Zhanserik中的变量名