javascript - 替换另一个变量中所述的属性名称

标签 javascript variables object

我不太确定应该如何表达它,但基本上我想实现这样的对象a:

var a = {
"test123": "A",
"testing/test": "B",
"notest": "C"
};

和对象b:

var b = {
"test123": "Test 123",
"testing": "Testing"
};

组合起来,得到一个如下所示的对象c:

var c = {
"Test 123": "A",
"Testing/test": "B",
"notest": "C"
};

希望你能明白我在说什么。基本上将对象 ab 组合/替换为 c,这样仅替换 / 之前的文本。

谢谢!

编辑:

以防万一你不明白,这就是我的意思。

在对象 b 中,b['test123'] = 'Test 123' 使得 a['test123'] 应该变成c['Test 123'],因为它是在b基础上更改的。

此外,由于 b['testing'] = 'Testing'a['testing/test'] 将变成 c['Testing/test ']b中所述,只是/之后的文本不受影响。

最佳答案

var a = {
"test123": "A",
"testing/test": "B",
"notest": "C"
};

var b = {
"test123": "Test 123",
"testing": "Testing"
};

var c = {};
for (var p in a) {
  var prop = p.split("/")[0];

  if (b.hasOwnProperty(prop)) {
    c[p.replace(prop, b[prop])] = a[p];
  } else {
    c[p] = a[p];
  }
}
console.log(c);

http://plnkr.co/edit/Lhi5fLKkW4UBzhOK6le7?p=preview

关于javascript - 替换另一个变量中所述的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275237/

相关文章:

javascript - 如何将字符串与对象键进行比较并获取该键的值?

javascript - ajax 只加载一次

javascript - 事件监听器内部使用的异步函数是否受到事件本身的瓶颈?

c# - 制作混合数组变量?

javascript - 使用 lodash 查找 null 属性

javascript - 在javascript对象中找到最接近的低 "key"

javascript - 为什么 Javascript 字符串替换会颠倒从右到左语言的词序?

javascript - 更改时选择值更新 href 链接值

variables - 在创建 lambda 时捕获变量的值

shell - 将变量发送到Docker容器中以在脚本中使用