需要优雅的方式从Javascript中的json映射中提取字符串形式的值

需要优雅的方式从Javascript中的json映射中提取字符串形式的值,javascript,Javascript,我是一个JS新手,试图从json映射数组中提取一些值。 地图类似于: var标记=[{ 键:“备份”, 值:“true” }, { 关键字:“名称”, 值:“sdlc根” } ] //这是我的第一次尝试: var volName=tags.filter(函数(项){ 返回项。键=='Name'; }) .map(结果=>{ 返回结果值; }); console.log(volName)您可以找到元素或默认对象并获取所需的属性 var volName = (tags.find(({ Key })

我是一个JS新手,试图从json映射数组中提取一些值。 地图类似于:

var标记=[{
键:“备份”,
值:“true”
},
{
关键字:“名称”,
值:“sdlc根”
}
]
//这是我的第一次尝试:
var volName=tags.filter(函数(项){
返回项。键=='Name';
})
.map(结果=>{
返回结果值;
});

console.log(volName)您可以找到元素或默认对象并获取所需的属性

var volName = (tags.find(({ Key }) => Key === 'Name') || {}).Value;

编写一个自定义函数,如下所示

var标记=[{
键:“备份”,
值:“true”
},
{
关键字:“名称”,
值:“sdlc根”
}
]
函数f(标签){

对于(i=0;i内部是否只有一个元素?简单的解决方案:destructure
var[volName]=
更优雅的解决方案:使用
.find
@NinaScholz我有多个元素,上面只是一个例子,tks。@当然性能不确定我的JS版本是否支持“find”,我认为它相对较新?一定会尝试一下。tks。如果环境不支持,不要让过时的浏览器削弱你编写简洁、干净代码的能力如果不支持ES6,请使用Babel+polyfills。如果找不到正确的值,这将出错。@chŝdk,您从一个没有给定属性的空对象中得到值
未定义
。这不会引发错误。为什么({Key})-这看起来更容易理解,不是吗?
var volName=(tags.find(x=>x.Key==“Name”)|{}).值
具有较小的brackets@mplungjan我认为,如果你只需要一个属性,你可以对这个属性进行解构,并显示你只使用这个属性。如果这个值是一个基本值,它还可以阻止对对象的赋值。
const tagsObj = tags.reduce((a, c) => { a[c.Key] = c.Value; return a }, {})
// {backup: "true", Name: "sdlc-root"}
console.log(tagsObj["Name"])
// "sdlc-root"