Javascript 如何将对象名-值对作为参数传递给方法?

Javascript 如何将对象名-值对作为参数传递给方法?,javascript,reactjs,Javascript,Reactjs,我有一个返回以下数据的对象数组: result [ {name: "Desc", value: "7777 - Florida Hurricane"} {name: "DSTR_NR", value: "7777"} {name: "Desc", value: "7172 - Virginia Severe Storm(s)"} {name: "DST

我有一个返回以下数据的对象数组:

result [
  {name: "Desc", value: "7777 - Florida Hurricane"}
  {name: "DSTR_NR", value: "7777"}
  {name: "Desc", value: "7172 - Virginia Severe Storm(s)"}
  {name: "DSTR_NR", value: "7172"}
  {name: "Desc", value: "7002 - Maryland Hurricane"}
  {name: "DSTR_NR", value: "7002"}
]
我需要将灾难号作为参数传递给我的
getProcessList()
方法,以便在响应成功后按灾难号获取进程列表

if (response.type == API_DISASTER_BY_ID_GET_SUCCESS) {
  this.getProcessList();
}
基于上面的响应输出,我如何正确地将“
DSTR\u NR
”(灾难编号)传递给我的方法

更新

无论我从灾难下拉列表中选择哪个灾难,只有该灾难值需要传递到
getProcessList()
方法,以便为进程下拉列表获取相应的进程列表。

{
让result=d.options.filter(d=>d.value=='DSTR_NR');
console.log(结果)
this.setState({value:result});
this.props.saveReduxData(数据路径、结果);
}}
/>

结果是一个数组,有多个
“DSTR_NR”
因此将有多个值可以作为参数传递

你可以用

例如:


结果=[
{名称:“Desc”,值:“7777-佛罗里达飓风”}
{名称:“DSTR_NR”,值:“7777”}
{名称:“Desc”,值:“7172-弗吉尼亚州严重风暴(s)”}
{名称:“DSTR_NR”,值:“7172”}
{名称:“Desc”,值:“7002-马里兰州飓风”}
{名称:“DSTR_NR”,值:“7002”}
]
//过滤后的结果将是
filteredResult=result.filter(d=>d.name=='DSTR_NR');
//过滤后的结果将是
/*
[ 
{名称:“DSTR_NR”,值:“7777”},
{名称:“DSTR_NR”,值:“7172”},
{名称:“DSTR_NR”,值:“7002”},
]
*/
仅获取可用于筛选结果的数字

onlyNumbers=filteredResult.map(d=>d.value);
/*
输出:-
["7777", "7172", "7002"]
*/
一行:

result.filter(d=>d.name=='DSTR_NR').map(d=>d.value);
/*
输出:-
["7777", "7172", "7002"]
*/
可以简单地将输出作为数组作为单个参数传递,也可以使用扩展运算符根据输出发送多个参数

output=[“7777”、“7172”、“7002”];
//作为单个参数(数组)
myFync(输出);
//作为多个参数
myFunc(…输出);

您可以使用从响应中筛选对象数组。然后,您可以将这些“DSTR_NR”对象中的值传递给您的方法。如果您只想在过滤的对象数组中包含每个
value
键的值,只需使用

让结果=[
{名称:“Desc”,值:“7777-佛罗里达飓风”},
{名称:“DSTR_NR”,值:“7777”},
{名称:“Desc”,值:“7172-弗吉尼亚州严重风暴(s)”},
{名称:“DSTR_NR”,值:“7172”},
{名称:“Desc”,值:“7002-马里兰州飓风”},
{名称:“DSTR_NR”,值:“7002”}
];
//“DSTR_NR”键值对数组
让disasterVals=result.filter(i=>i.name==“DSTR_NR”);
控制台日志(disasterVals);
//“值”的数组
设values=disasterVals.map(i=>i.value);
console.log(值);
函数方法(val){
返回“灾难Val:+Val;
}
//从对象数组访问值
log(somethod(disasterVals[0].value));
//或从“value”数组中访问值
log(someMethod(值[1]);

log(someMethod(值[2])可以从数组中筛选“DSTR_NR”对象,然后将这些值传递到方法中。您是否只需要将与“DSTR_NR”关联的
传递给您的方法,或使用
名称
键传递给整个对象?@TannerDolby感谢您的回复。我只需要将与DSTR_NR关联的“值”传递给该方法。你能给我举个例子说明我是如何做到这一点的吗?太好了,坦纳。非常感谢你。这正是我想要的。然而,我看到了一个问题。它传递数组中的所有DSTR_NR值。我的页面包含一个下拉列表,用于呈现我在帖子中提到的结果数据。单击我从下拉列表中选择的所需值时,只需将与DSTR_NR关联的值传递给方法。Ok。如果我理解正确的话,你有一个列表,比如说,当你点击一个下拉项时,它代表一个带有相关“DSTR_NR”和“value”键的对象?或者也可以从下拉列表中单击
名称:“Desc”
对象?您需要传递从下拉菜单中单击的项目的
值。是的,这是正确的。你在正确的轨道上。我有一个选项列表,它表示具有DSTR_NR和value key的对象。名称:“Desc”对象也可以从下拉列表中单击,但最后我需要传递的是与DSTR_NR关联的值,因为第二个rest调用希望返回与我选择的灾难编号对应的进程列表。我已更新了我的帖子。如果你需要更多信息,请告诉我。谢谢你的帮助。我试图创建一个沙箱,但未能…但好消息是我能够解决我的问题。Saurabh,非常感谢您的回复和所有解释。这正是我想要的。然而,我看到了一个问题。它传递数组中的所有DSTR_NR值。我的页面包含一个下拉列表,用于呈现我在帖子中提到的结果数据。单击我从下拉列表中选择的所需值后,只有与DSTR_NR相关的值需要传递到方法。您可以分享您期望的输出吗?我已更新了我的帖子。如果你需要更多信息,请告诉我。
<Dropdown
  placeholder={placeholder}
  search
  selection
  clearable
  options={options}
  value={this.state.value}
  style={style}
  onChange={(e, d) => {
    let result = d.options.filter(d => d.value === 'DSTR_NR');
    console.log(result)
    this.setState({ value: result });
    this.props.saveReduxData(datapath, result);
  }}
/>