Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 使用lodash获取嵌套对象属性_Javascript_Object_Ecmascript 6_Nested_Lodash - Fatal编程技术网

Javascript 使用lodash获取嵌套对象属性

Javascript 使用lodash获取嵌套对象属性,javascript,object,ecmascript-6,nested,lodash,Javascript,Object,Ecmascript 6,Nested,Lodash,我有一个带有国家代码的嵌套对象。我需要根据条件使用lodash获取相应的货币属性 我是lodash的新手,不确定我可以在这里使用哪种方法 例如。, 当我搜索国家代码“AU”对应的货币时,它应该返回“AUD” 目前,我得到了整个对象 我该怎么做 var myJSON={ “国家代码”:{ “澳大利亚”:“非盟”, “美国”:“美国”, “英国”:“GB”, “日本”:“日本”, “印度”:“印度”, “法国”:“法国”, “俄罗斯”:“俄罗斯” }, “国家”:{ “AE”:{ “货币”:{ “

我有一个带有国家代码的嵌套对象。我需要根据条件使用lodash获取相应的货币属性

我是lodash的新手,不确定我可以在这里使用哪种方法

例如。, 当我搜索国家代码“AU”对应的货币时,它应该返回“AUD”

目前,我得到了整个对象

我该怎么做

var myJSON={
“国家代码”:{
“澳大利亚”:“非盟”,
“美国”:“美国”,
“英国”:“GB”,
“日本”:“日本”,
“印度”:“印度”,
“法国”:“法国”,
“俄罗斯”:“俄罗斯”
},
“国家”:{
“AE”:{
“货币”:{
“AED”:{
“isDefault”:正确
}
}
},
“AL”:{
“货币”:{
“全部”:{
“isDefault”:正确
}
}
},
“非盟”:{
“货币”:{
“澳元”:{
“isDefault”:正确
}
}
},
“美国”:{
“货币”:{
“美元”:{
“isDefault”:正确
}
}
},
“GB”:{
“货币”:{
“欧元”:{
“isDefault”:正确
}
}
},
“FR”:{
“货币”:{
“欧元”:{
“isDefault”:正确
}
}
},
“JP”:{
“货币”:{
“日元”:{
“isDefault”:正确
}
}
},
“RS”:{
“货币”:{
"区署:{
“isDefault”:false
}
}
},
“ZA”:{
“货币”:{
“南非兰特”:{
“isDefault”:正确
}
}
}
}
};
函数getData(){
var countryCode=['AU','ZA','JP'];
log(json.pick(myJSON.countries,countryCode));
log(0.values(0.pick(myJSON.countries,countryCode));
}


获取数据
Pick将按要求执行操作

而是这样做:

countryCode.map((ct) => Object.keys(myJSON.countries[ct].currencies)[0]);
当我搜索国家代码“AU”对应的货币时, 它应该返回'AUD'

也可以尝试这个vanila js解决方案,使用
map

var countryCode = ['AU', 'ZA', 'JP'];
var output = countryCode.map( s => Object.keys( myJSON.countries[ s ].currencies[ 0 ] ) );

lodash的做法如下所示:

函数getData(){ var countryCode=['AU','ZA','JP']; console.log( _(myJSON.国家) .pick(国家代码) .values() .map(函数(值){return}.keys(value.currences)[0];}) .value() );
}很遗憾,这段代码在旧浏览器中不起作用。@Alex由于使用了箭头函数?是的,Object.keys和array.map在旧浏览器中也不起作用:(我们谈论的年龄是多少?
map
Object。键
都很老了!就像IE8:D一样。实际上我喜欢你的答案,它应该在95%的情况下都有效,我给出了另一个答案,只是因为已经提到了lodash(而且它看起来更漂亮)谢谢,但这给了我国家代码。我需要货币。啊,是的。马上就要换了。我误解了它,因为“期望输出:['AUD','ZAR','JP']”是的,它应该按照期望输出显示。但是,我从你的解决方案中得到的与国家代码完全相同。