替换数组中的字符并将结果返回到同一个数组

时间:2016-10-04 14:14:51

标签: javascript reactjs ecmascript-6 react-jsx react-redux

我从REST服务中提取一些数据。数据保存在this.props.message中。在this.props.message我需要替换所有“。”在offerRateprevRaterate中添加“,”,然后将数据保存回this.props.message。稍后将在表(react-bootstrap-table)中输出this.props.message。可以在表中编辑数据,然后在将其推回到REST服务之前,我需要将“,”替换为“。”。

this.props.message看起来像这样。

[Object, Object, Object, Object, Object, Object]
0:Object
    addedDate:"2013-08-22"
    ccyCode:"CHF"
    country:"SCHWIZER FRANC"
    lastChangeDate:"2016-05-02"
    offerRate:7.02
    prevRate:8.501
    prevRateDate:"2016-04-01"
    rate:8.425
    rateDate:"2016-05-01"
    unit:1
    __proto__:Object
1:Object
2:Object
3:Object
4:Object
5:Object
然后在表

中输出

this.props.message

render() {
    return (
    <div>
      <BootstrapTable 
        data={this.props.message}
        cellEdit={{
            mode: "click",
            blurToSave: true,
            afterSaveCell: this.onAfterSaveCell
        }}
      >
        <TableHeaderColumn dataField="rate" dataSort={true}>Kurs</TableHeaderColumn>
      </BootstrapTable>
    </div>

对于表中编辑的数据,我有一个名为onAfterSaveCell的回调函数。这可能是用“。”替换“,”的好地方。在将数据推送回REST服务之前。

onAfterSaveCell(row, cellName, cellValue) {
    this.props.updateData(row);
}

row看起来像这样

Object {ccyCode: "CHF", country: "SCHWIZER FRANC", unit: 1, rateDate: "2016-05-01", rate: 8.425…}
addedDate:"2013-08-22"
ccyCode:"CHF"
country:"SCHWIZER FRANC"
lastChangeDate:"2016-05-02"
offerRate:"7.99"
prevRate:8.501
prevRateDate:"2016-04-01"
rate:8.425
rateDate:"2016-05-01"
unit:1
__proto__:Object

我还没有设法在React中找到替换函数。我还能采取其他方法吗?

1 个答案:

答案 0 :(得分:0)

有一些事情让我偏离轨道。 this.props.messagearray的{​​{1}}。首先,我需要遍历object以获取array,然后遍历object以到达我想要更改的字符。 object中的值不是object所以我需要将它们转换为string以便能够使用string这就是我最终要做的事情。

replace

我在replaceChar(from, to) { for (var i in this.props.message) { for (var p in this.props.message[i]) { if(this.props.message[i].hasOwnProperty(p)){ if(p == 'rate' || p == 'prevRate' || p == 'offerRate') { this.props.message[i][p] = JSON.stringify(this.props.message[i][p]).replace(from,to); } } } } } 方法调用之前调用上面的表格。