Javascript ReactJS,如何将json对象复制到另一个标识值更改的对象
我有如下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
[{"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更改了行。在您的问题中,您有一个对象,我使用了一个对象。您可以修改它,映射数组,并检查数组中每个项的相等性。