我有一个对象数组,它返回以下数据:
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_NR
”(灾难编号)传递给我的方法?
更新
无论我从灾难下拉菜单中选择哪种灾难,都只需将该灾难值传递给该getProcessList()
方法,以便可以为该进程下拉列表获取相应的进程列表。
<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);
}}
/>
您可以使用过滤响应中的对象数组Array.prototype.filter
。然后,您可以将这些“ DSTR_NR”对象中的值传递给您的方法。如果只希望value
在过滤的对象数组中具有每个键的值,请使用Array.prototype.map
。
let 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"}
];
// array of "DSTR_NR" key-value pairs
let disasterVals = result.filter(i => i.name === "DSTR_NR");
console.log(disasterVals);
// array of `value`'s
let values = disasterVals.map(i => i.value);
console.log(values);
function someMethod(val) {
return "Disaster Val: " + val;
}
// access value from array of objects
console.log(someMethod(disasterVals[0].value));
// or access value from array of `value`'s
console.log(someMethod(values[1]));
console.log(someMethod(values[2]));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句