Javascript 通过'选择把手中的数组项;键';

Javascript 通过'选择把手中的数组项;键';,javascript,handlebars.js,Javascript,Handlebars.js,是否可以通过键/字段名选择把手中的数组项 说我的阵型是这样的 "MyVariables": [ { "Key": "var1", "Value": 1 }, { "Key": "var2", "Value": 2 }, { "Key": "var3", "Value": 3 }] 我知道这可以通过索引来完成 {{MyVariables.2.Value}} 然而,我想要的东

是否可以通过键/字段名选择把手中的数组项

说我的阵型是这样的

"MyVariables": [
    {
      "Key": "var1",
      "Value": 1
    },
    {
      "Key": "var2",
      "Value": 2
    },
    {
      "Key": "var3",
      "Value": 3
    }]
我知道这可以通过索引来完成

{{MyVariables.2.Value}} 
然而,我想要的东西大致如下

{{MyVariables.[Key == "var3"].Value}}
如果不能“开箱即用”完成,有人知道如何通过助手实现吗

我到处寻找这个问题,但找不到像样的解决办法


感谢阅读。

您可以通过


试试
{{{.find(MyVariables,['Key',var3'])}
这里有一个使用
forEach的简单方法

var-arr=[
{
“密钥”:“var1”,
“价值”:1
},
{
“密钥”:“var2”,
“价值”:2
},
{
“密钥”:“var3”,
“价值”:3
}]
功能值(键、键值、arr){
变量项=[]
arr.forEach((项目)=>{
if(item[key].indexOf(keyValue)!=-1)//使用indexOf或==其upp给您
项目。推送(项目)
})
退货项目;
}

console.log(value(“Key”,“var2”,arr))
更好的方法是使用
Array.prototype.reduce
,如果不想更改原始数组,请使用额外的变量

让MyVariables=[{
“密钥”:“var1”,
“价值”:1
},
{
“密钥”:“var2”,
“价值”:2
},
{
“密钥”:“var3”,
“价值”:3
}
];
//如果不想更改MyVariables,请使用不同的变量
MyVariables=MyVariables.reduce((acc,val)=>{
acc=acc?acc:[];
acc[val.Key]=val.val;
返回acc;
}, [])
log(MyVariables[“var1]”);
log(MyVariables[“var2]”);

log(MyVariables[“var3]”)一种非常简单的方法是更改数组的结构(MyVariables


在这种情况下,result具有MyVariables列表的主要数据,但结构不同,可以很容易地访问所需的值。

我有点搞不清楚您要问的是什么。您是否只想在
Key==“var3”
{Key:“var3”,Value:3}
)中获取对象?你就不能用这个吗
MyVariables.find(item=>item.Key==“var3”).Value
。或者是否要更改数组的外观,以便可以使用
MyVariables[“var3”].Value
(将
属性设置为索引)访问它。
let MyVariables = [{
    "Key": "var1",
    "Value": 1
    },
    {
    "Key": "var2",
    "Value": 2
    },
    {
    "Key": "var3",
    "Value": 3
    }
];

let result = MyVariables.reduce(function(map, obj) {
    map[obj.Key] = obj.Value;
    return map;
}, {});    

console.log(result["var3"])