Javascript _.是否将对象中的值映射到另一个对象的字段名?

Javascript _.是否将对象中的值映射到另一个对象的字段名?,javascript,reactjs,lodash,Javascript,Reactjs,Lodash,为了正确地问这个问题,我正在努力学习词汇表,下面是我的代码,并给出如下解释: import _ from 'lodash'; import React, { Component } from 'react'; export default class Base extends Component { render() { const { cr, p } = this.props; return ( <tr classNam

为了正确地问这个问题,我正在努力学习词汇表,下面是我的代码,并给出如下解释:

import _ from 'lodash';
import React, { Component } from 'react';

export default class Base extends Component {

    render() {
        const { cr, p } = this.props;
        return (
            <tr className='bq-bottom-border'>
                <td className='bq-column-border' colSpan='3'>Base</td>
                <td>{cr.BaseN}</td>
                <td>{'$' + (cr.Base10/1000).toFixed(1)}</td>
                <td>{'$' + (cr.Base25/1000).toFixed(1)}</td>
                <td>{'$' + (cr.BaseMedian/1000).toFixed(1)}</td>
                <td>{'$' + (cr.BaseMean/1000).toFixed(1)}</td>
                <td>{'$' + (cr.Base75/1000).toFixed(1)}</td>
                <td>{'$' + (cr.Base90/1000).toFixed(1)}</td>
            </tr>
        );
    }
}
_.map(percentiles, p => {
    'Base' + p
}
然后我想做如下操作:

import _ from 'lodash';
import React, { Component } from 'react';

export default class Base extends Component {

    render() {
        const { cr, p } = this.props;
        return (
            <tr className='bq-bottom-border'>
                <td className='bq-column-border' colSpan='3'>Base</td>
                <td>{cr.BaseN}</td>
                <td>{'$' + (cr.Base10/1000).toFixed(1)}</td>
                <td>{'$' + (cr.Base25/1000).toFixed(1)}</td>
                <td>{'$' + (cr.BaseMedian/1000).toFixed(1)}</td>
                <td>{'$' + (cr.BaseMean/1000).toFixed(1)}</td>
                <td>{'$' + (cr.Base75/1000).toFixed(1)}</td>
                <td>{'$' + (cr.Base90/1000).toFixed(1)}</td>
            </tr>
        );
    }
}
_.map(percentiles, p => {
    'Base' + p
}
要生成
中使用的字段名,您可以看到:
cr.Base10
cr.Base25
,等等。
cr.
本身是一个每隔5个百分位的对象

这就是我无法理解如何实现它的地方。我不能做以下事情:

_.map(percentiles, p => {
    <td>{'$' + (cr.Base{p}/1000).toFixed(1)}</td>
}
或:


我可以做一个
console.log(cr.Base10)并按预期工作。

使用Lodash,您可以从百分位对象的属性创建数组:

设_百分位数=_.值(百分位数)


然后,您可以在调用“地图”时反复使用此选项。

好的,Ben Smith的答案,这帮助我得出了答案:

基本上,我们需要将陈述总结起来,以得出解决方案:

testRender(percentiles, cr) {
    _.map(percentiles, p => {
        let field = eval('cr.Base' + (p == 'n' ? 'N' : p));
        console.log(field);
    })
}

字段的实际值已记录在控制台中。

Hi,感谢您的响应。还有问题。请看我修改过的问题。很高兴你找到了解决方案!
testRender(percentiles, cr) {
    _.map(percentiles, p => {
        let field = eval('cr.Base' + (p == 'n' ? 'N' : p));
        console.log(field);
    })
}