在JavaScript中从JSON中动态探索和提取特定字段

2j4z5cfb  于 2023-03-31  发布在  Java
关注(0)|答案(1)|浏览(153)

我使用react_query检索一些数据,返回数据如下:

return fetch(getRequest).then((response) => response.json())

稍后,我将数据转换为数组,如下所示。

Query.data.map(({field1,field2,field3,}) => [field1, field2,field3])

老实说,我不确定这是否是最好的方法,因为它返回一个[Array(3), Array(3), Array(3) ...]对象,而不是一个可能更好的field1:[...], field2:[...], field3:[...]类型的字典。
无论如何,不管是格式还是数据,我都想动态地提取一个给定的字段,我得到了我想以字符串格式提取的字段的名称。
我遇到的主要问题是我不能只应用这个字符串来做类似的事情

let field_to_call = "example"
Query.data.map(({field_to_call}) => [field_to_call])

这是因为这种代码格式需要变量本身而不是字符串引用。解决这个问题的最佳方法是什么?

lhcgjxsq

lhcgjxsq1#

要从数据中检索属于特定属性的值,您可以在回调函数中访问该属性:

const data = [
    {field1: "a", field2: "B", field3: 13},
    {field1: "c", field2: "D", field3: 26},
    {field1: "e", field2: "E", field3: 39},
];

let field_to_call = "field2"
const result = data.map(obj => obj[field_to_call]); 

console.log(result);

或者,如果要使用解构,请使用计算属性名称语法:

const data = [
    {field1: "a", field2: "B", field3: 13},
    {field1: "c", field2: "D", field3: 26},
    {field1: "e", field2: "E", field3: 39},
];

let field_to_call = "field2"
const result = data.map(({[field_to_call]: value}) => value); 

console.log(result);

相关问题