javascript - 当键是用户输入时,我应该如何使用 map 来取回对象的某些值
问题描述
我有如下数据:
0: Object { IG: "Low income", FLFPR: 47.00099945, lnGDP: 7.496679918, … }
1: Object { IG: "Upper middle income", FLFPR: 47.67599869, lnGDP: 9.302921813, … }
2: Object { IG: "Upper middle income", FLFPR: 15.18999958, lnGDP: 9.526954146, … }
3: Object { IG: "Lower middle income", FLFPR: 75.47899628, lnGDP: 8.802498179, … }
4: Object { IG: "High income", FLFPR: 47.82500076, lnGDP: 9.858328453, … }
5: Object { IG: "Upper middle income", FLFPR: 51.16600037, lnGDP: 9.011393414, … }
我只需要从每个对象中说 IG 和 FLFPR。另外,我不知道 IG 和 FLFPR 的值。它们是用户输入。例如,inputx = IG 和 inputy = FLFPR。
我尝试使用地图,但我无法让它工作。我知道下面的代码是不正确的,但直觉上这就是我需要的。
xydata = data.map(item => {x: item.inputx, y: item.inputy});
在这种情况下使用地图是否正确?
编辑:
dat = [{x: 8, y: 3, z:5},{x: 2, y: 10, z:5},{x: 11, y: 3, z:5},{x: 6, y: 6, z:5},{x: 5, y: 8, z:5}]
xText = 'x'
yText = 'y'
xydata = dat.map(item => ({x: item.[xText], y: item.[yText]}));
解决方案
您可以使用[]
动态访问对象属性。
let x = {dog: 3, cat: 4, key: 5};
let key = 'dog';
console.log(x.key); // 5
console.log(x['key']); // also 5
console.log(x[key]); // 3
在你的情况下:
xydata = data.map(item => ({x: item[inputx], y: item[inputy]}));
同样,您可以[]
在创建具有动态属性名称的对象时使用。
let key = 'dog';
let x = {
cat: 5,
[key]: 6,
key: 7,
};
console.log(x.key); // 7
console.log(x.dog); // 6
推荐阅读
- git - git - 开发基础和扩展功能 - 基础中的提交应该反映在拉中的扩展中
- sql-server - 如何编写查询以连接三个表?
- pytorch - Pytorch 对沿轴的张量列表求和
- sql - SQL Server 2008:复制一行 n 次,其中 n 是字段中的值
- javascript - 在静态方法递归使用的 es6 类中创建计数器变量
- facebook - Facebook Webhooks 提及事件 json 不包含发件人 fb 用户 ID 和用户名
- jquery - 如何解决此问题:跨域读取阻塞 (CORB) 阻止了跨域响应
- django - Django Rest框架序列化器有必要吗?
- maven - 如何在 Sonatype nexus oss 3 中设置虚拟存储库
- scala - 为什么 Phantom Cassandra Insert 得到“main” java.lang.NoClassDefFoundError: scala/reflect/runtime/package 错误