【问题标题】:How can I combine two react objects?如何组合两个反应对象?
【发布时间】:2021-07-28 22:26:06
【问题描述】:
const a = [

0: {market: "KRW-BTC", korean_name: "비트코인", english_name: "Bitcoin"}
1: {market: "KRW-ETH", korean_name: "이더리움", english_name: "Ethereum"}
2: {market: "KRW-NEO", korean_name: "네오", english_name: "NEO"}
3: {market: "KRW-MTL", korean_name: "메탈", english_name: "Metal"}
4: {market: "KRW-LTC", korean_name: "라이트코인", english_name: "Litecoin"}
5: {market: "KRW-XRP", korean_name: "리플", english_name: "Ripple"}
6: {market: "KRW-ETC", korean_name: "이더리움클래식", english_name: "Ethereum Classic"}
7: {market: "KRW-OMG", korean_name: "오미세고", english_name: "OmiseGo"}
8: {market: "KRW-SNT", korean_name: "스테이터스네트워크토큰", english_name: "Status Network Token"}
9: {market: "KRW-WAVES", korean_name: "웨이브", english_name: "Waves"}
10: {market: "KRW-XEM", korean_name: "넴", english_name: "NEM"}
11: {market: "KRW-QTUM", korean_name: "퀀텀", english_name: "Qtum"}
12: {market: "KRW-LSK", korean_name: "리스크", english_name: "Lisk"}
]



const b = [

0: {market: "KRW-BTC", trade_date: "20210506", trade_time: "144435", trade_date_kst: "20210506", trade_time_kst: "234435", …}
1: {market: "KRW-ETH", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
2: {market: "KRW-NEO", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
3: {market: "KRW-MTL", trade_date: "20210506", trade_time: "144432", trade_date_kst: "20210506", trade_time_kst: "234432", …}
4: {market: "KRW-LTC", trade_date: "20210506", trade_time: "144433", trade_date_kst: "20210506", trade_time_kst: "234433", …}
5: {market: "KRW-XRP", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
6: {market: "KRW-ETC", trade_date: "20210506", trade_time: "144437", trade_date_kst: "20210506", trade_time_kst: "234437", …}
7: {market: "KRW-OMG", trade_date: "20210506", trade_time: "144437", trade_date_kst: "20210506", trade_time_kst: "234437", …}
8: {market: "KRW-SNT", trade_date: "20210506", trade_time: "144434", trade_date_kst: "20210506", trade_time_kst: "234434", …}
9: {market: "KRW-WAVES", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
10: {market: "KRW-XEM", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
11: {market: "KRW-QTUM", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
12: {market: "KRW-LSK", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436", …}
]

有两个这样的,我想根据“市场”合并它们。有什么办法合并吗??我不确定,因为我是 React 的初学者。

【问题讨论】:

  • 这些是对象数组。 React 是一个前端框架,在这里无关紧要。
  • 您可以使用{...obj1, obj2} 合并两个对象。不太清楚你的意思based on the 'market'.
  • @ChrisG 哦,数组,我的错。
  • @ShivamJha 再次,不。
  • let combined = { ...a, ...b } console.log(a, b)。它是一个数组,只是输出没有数组的内容。

标签: javascript reactjs react-hooks


【解决方案1】:

类似的东西:

const c = a.map(_a => {
    const foundB = b.find(_b => _a.market===_b.market)
    return foundB ? {..._a,...foundB} : _a
})

【讨论】:

  • 非常感谢。谢谢。非常感谢您的帮助。
【解决方案2】:

你可以试试这个。可能有更好的方法来做到这一点。谢谢。

const a = [
  {market: "KRW-BTC", korean_name: "비트코인", english_name: "Bitcoin"},
  {market: "KRW-ETH", korean_name: "이더리움", english_name: "Ethereum"},
  {market: "KRW-NEO", korean_name: "네오", english_name: "NEO"},
  {market: "KRW-MTL", korean_name: "메탈", english_name: "Metal"},
  {market: "KRW-LTC", korean_name: "라이트코인", english_name: "Litecoin"},
  {market: "KRW-XRP", korean_name: "리플", english_name: "Ripple"},
  {market: "KRW-ETC", korean_name: "이더리움클래식", english_name: "Ethereum Classic"},
  {market: "KRW-OMG", korean_name: "오미세고", english_name: "OmiseGo"},
  {market: "KRW-SNT", korean_name: "스테이터스네트워크토큰", english_name: "Status Network Token"},
  {market: "KRW-WAVES", korean_name: "웨이브", english_name: "Waves"},
  {market: "KRW-XEM", korean_name: "넴", english_name: "NEM"},
  {market: "KRW-QTUM", korean_name: "퀀텀", english_name: "Qtum"},
  {market: "KRW-LSK", korean_name: "리스크", english_name: "Lisk"},
]

const b = [
  {market: "KRW-BTC", trade_date: "20210506", trade_time: "144435", trade_date_kst: "20210506", trade_time_kst: "234435"},
  {market: "KRW-ETH", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
  {market: "KRW-NEO", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
  {market: "KRW-MTL", trade_date: "20210506", trade_time: "144432", trade_date_kst: "20210506", trade_time_kst: "234432"},
  {market: "KRW-LTC", trade_date: "20210506", trade_time: "144433", trade_date_kst: "20210506", trade_time_kst: "234433"},
  {market: "KRW-XRP", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
  {market: "KRW-ETC", trade_date: "20210506", trade_time: "144437", trade_date_kst: "20210506", trade_time_kst: "234437"},
  {market: "KRW-OMG", trade_date: "20210506", trade_time: "144437", trade_date_kst: "20210506", trade_time_kst: "234437"},
  {market: "KRW-SNT", trade_date: "20210506", trade_time: "144434", trade_date_kst: "20210506", trade_time_kst: "234434"},
  {market: "KRW-WAVES", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
  {market: "KRW-XEM", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
  {market: "KRW-QTUM", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
  {market: "KRW-LSK", trade_date: "20210506", trade_time: "144436", trade_date_kst: "20210506", trade_time_kst: "234436"},
]

const finalArray = a.map(item => ({...item, ...b.find(itemOfB => itemOfB.market === item.market)}))

console.log(finalArray)

【讨论】:

  • 这基本上是接受的答案(和我的评论)的副本,没有 devrnd 的错误检查。
猜你喜欢
  • 1970-01-01
  • 2015-08-06
  • 2022-01-04
  • 2014-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多