【问题标题】:Override values of javascript objects in react在反应中覆盖javascript对象的值
【发布时间】:2018-04-16 20:33:33
【问题描述】:

我有 2 个 javascript 对象。第一个是默认对象,第二个是第一个的覆盖。

对象 1:

export const messages = {
'id': 'id',
'category': 'category',
'country': 'country',
'continent': 'continent',
'city': 'city',
'field': 'field',
'price': 'price',
'name': 'name',

};

对象 2:

window.messages['id'] = 'id';
window.messages['category'] = 'section';
window.messages['country'] = 'country';

这看起来很愚蠢,但这种荒谬是有原因的

我想知道是否有办法让我用对象 2 覆盖对象 1 而不会压倒对象 1。这些都是外部文件。

我为我的错误拼写和描述道歉

提前谢谢你

【问题讨论】:

  • 这和react有什么关系?
  • 当然,为什么不呢?我假设您的意思是要将对象 2 中的值移动到对象 1 的相应键中,对吗? there's a specific object method that does exactly that.
  • 这是一种习惯力量,对不起。我一直在使用 react fo 我在东西的末尾输入它
  • 是的,我确实想移动元素,但更多的是只读的。

标签: javascript reactjs


【解决方案1】:

据我了解,您需要以某种简单的方式将 object2 合并到 object1 中。

let obj1 = {
  key1: 'value1',
  key2: 'value2',
  key3: 'value3'
}

let obj2 = {
  key1: 'anotherValue1',
  key2: 'anotherValue2'
}

let mergedObjVariant1 = Object.assign(obj1, obj2); // variant#1
let mergedObjVariant2 = {...obj1, ...obj2};        // variant#2

因此,您将拥有两种变体:

{ key1: 'anotherValue1', key2: 'anotherValue2', key3: 'value3' }

【讨论】:

  • 我注意到,变体 1 会改变 obj1,但变体 2 会产生一个新对象,并使 obj1obj2 保持不变。
  • 这些值是从外部文件中读取的,所以这不是问题,有没有办法让它动态化,因为我不知道哪些值正在被变异我只知道 obj1 包含元素在 obj2 中
猜你喜欢
  • 2017-03-25
  • 2019-02-20
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 1970-01-01
相关资源
最近更新 更多