Javascript 如何接收内部属性字符串

Javascript 如何接收内部属性字符串,javascript,arrays,Javascript,Arrays,我想从datadependencMap接收依赖项字符串 var数据= [ { “id”:1, “主动”:正确, “依赖性”:[ {“id”:2,“type”:“critical”}, {“id”:3,“类型”:“中等”} ] }, { “id”:2, “主动”:正确, “依赖性”:[ {“id”:3,“类型”:“中等”} ] }, { “id”:3, “主动”:假, “依赖关系”:[] } ] //这是应该的 var dataActiveMap=newmap(data.Map(obj=>[o

我想从
datadependencMap
接收
依赖项
字符串


var数据=
[
{
“id”:1,
“主动”:正确,
“依赖性”:[
{“id”:2,“type”:“critical”},
{“id”:3,“类型”:“中等”}
]
},
{
“id”:2,
“主动”:正确,
“依赖性”:[
{“id”:3,“类型”:“中等”}
]
},
{
“id”:3,
“主动”:假,
“依赖关系”:[]
}
]
//这是应该的
var dataActiveMap=newmap(data.Map(obj=>[obj.id,obj.active]))
data.forEach(函数({id}){
if(dataActiveMap.get(id)==true){
console.log(id,“active:”,true)
}
})
//问题是:如何返回依赖项字符串,如“critical”或“medium”
var datadependencMap=新映射(data.Map(obj=>[obj.id,obj.dependency]))
data.forEach(函数({id}){
if(dataActiveMap.get(id)==true){
console.log(id,“dependency:”,dependency.value)
}
})

没有依赖项的值属性,您可以传递依赖项,以便按以下方式访问该对象:


var数据=
[
{
“id”:1,
“主动”:正确,
“依赖性”:[
{“id”:2,“type”:“critical”},
{“id”:3,“类型”:“中等”}
]
},
{
“id”:2,
“主动”:正确,
“依赖性”:[
{“id”:3,“类型”:“中等”}
]
},
{
“id”:3,
“主动”:假,
“依赖关系”:[]
}
]
//这是应该的
var dataActiveMap=newmap(data.Map(obj=>[obj.id,obj.active]))
data.forEach(函数({id}){
if(dataActiveMap.get(id)==true){
//console.log(id,“active:”,true)
}
})
//问题是:如何返回依赖项字符串,如“critical”或“medium”
var datadependencMap=data.map({id,dependency})=>({id,dependency}));
forEach(函数({id,dependency}){
if(dataActiveMap.get(id)==true){
//日志(id,“依赖项:”,依赖项);
//如果需要*type*属性作为逗号分隔的字符串
log(“id:”,id,“and dependency:”,dependency.map(({type})=>type.join(“,”);
}
})

我不确定dataActiveMap常量将用于什么,但另一种解决方案是用于循环。如果仍然需要dataActiveMap和dataDependencyMap,则始终可以创建这些数组,并使用
push()
方法在循环中的适当时间将值添加到数组中。检查下面的解决方案

for (key in data){ // loops through the data array
  
    // console.log(data[key]) 

    if (data[key].active) // checks if each object's active property in data array  is true
    {
      // console.log(data[key].dependency)

      for (dependency in data[key].dependency) // loops through dependencies
      {
        // console.log(data[key].dependency[dependency])

        for (props in data[key].dependency[dependency]) // loops through objects nested in dependencies
        {
          console.log(data[key].dependency[dependency].type) //prints the type property
        }
      }
    }
  }

不清楚,您希望输出是什么?可以添加示例输出您可以使用整个对象作为
Map
中的值,例如:
data.Map(obj=>[obj.id,obj])
。然后
const obj=dataActiveMap.get(id)
将返回整个对象。您可以检查
if(obj.active)
属性并获得
obj.dependency
谢谢@adiga,这也是一个好方法。不幸的是,我收到一个ReferenceError:id未定义。“我猜一定是我。”阿迪加解决了这个问题,谢谢你的提示。