Javascript ReactJS,如何将json对象复制到另一个标识值更改的对象

Javascript ReactJS,如何将json对象复制到另一个标识值更改的对象,javascript,reactjs,Javascript,Reactjs,我有如下json数据: [{"TICKER":"APPL","ASK":192.12345,"BID":193.54321,"ISCHANGED":"NO"}, {"TICKER":"TSLA","ASK":318.98765,"BID":319.56789,"ISCHANGED":"NO"}] 在使用新数据更新组件时,我想比较/映射以前的数据和新数据,并使用“ISCHANGED”标识更改:“是”。Ticker是键,Bid/Ask-更改值 谢谢 使用示例代码更新: this.state

我有如下json数据:

[{"TICKER":"APPL","ASK":192.12345,"BID":193.54321,"ISCHANGED":"NO"},
{"TICKER":"TSLA","ASK":318.98765,"BID":319.56789,"ISCHANGED":"NO"}]
在使用新数据更新组件时,我想比较/映射以前的数据和新数据,并使用“ISCHANGED”标识更改:“是”。Ticker是键,Bid/Ask-更改值

谢谢

使用示例代码更新:

    this.state = {
        quote: {
            ticker: '',
            ask: '',
            bid: '',
            isChanged: ''
        }

handleQuoteFetched (data) {

    // here Im looking for a way to compare data and quote 
    // and identify values changes and set isChanged Yes/No

    this.setState({
        quote: data
    })
}

render () {

    //...
        <td className={quote.isChanged === 'Yes'?this.state.classCSSHighlight:''}>
            {quote.rateBid}>
        </td>
this.state={
引述:{
股票代码:“”,
问:'',
出价:'',
已更改:“”
}
handleQuoteFetched(数据){
//这里我在寻找一种比较数据和报价的方法
//并确定值的变化,并设置isChanged是/否
这是我的国家({
引用:数据
})
}
渲染(){
//...
{quote.rateBid}>

}我想您应该使用
setState
回调函数

this.setState((prevState, newState) => {
  // do comparison here
})

您可以使用
lodash.isEqual
函数对两个值进行深入比较

handleQuoteFetched (data) {

    // here Im looking for a way to compare data and quote 
    // and identify values changes and set isChanged Yes/No

    this.setState(prevState => {
        const nextState = _.isEqual(prevState.quote, data) ? {} : {...data, ISCHANGED: true}
        return nextState  
    })
}

您的要求不明确。请用适当的示例详细说明您可以使用ComponentWillReceiveProps(下一步)然后将this.props与nextPropsThanks进行比较。我已经确定了上一行和新数据。现在的问题是如何逐行比较数组,并将结果设置为new.ischangedhanks!您帮助我向前迈进了一步。但是数据是多行数组。我想确定每一行的更改。首先,您为什么要我需要代码或第三方函数,它们可以逐行比较值,并将结果设置为isChanged标志(对象的属性).仍在寻找一些聪明的方法。你能告诉我上面答案的输出吗?按gg?实际上,isChanged属性是对象quote/data的一部分。(quote.isChanged)。我已经播放了代码,但不幸的是还没有成功。您的代码设置了一个全局isChanged属性。我需要引号数组的每一行的isChanged标志。用true更改了行,用false更改了行。在您的问题中,您有一个对象,我使用了一个对象。您可以修改它,映射数组,并检查数组中每个项的相等性。