我不太确定应该如何表达它,但基本上我想实现这样的对象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"
};
希望你能明白我在说什么。基本上将对象 a
和 b
组合/替换为 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);
关于javascript - 替换另一个变量中所述的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275237/