我有一个任务,用字符串模式中的所有键替换它们的值。输入是类似的东西:
用给定字符串模式中的值替换对象键
[
'{ "name": "John", "age": 13 }',
"My name is #{name} and I am #{age}-years-old"
]
和输出是这样的:“我的名字是约翰和我13岁。”
于是我想出了这一点:
function FillTemplate() {
if (arguments.length < 2 || arguments.length > 7) {
console.log('The input objects should be at least 1 and lesser than 7!');
}
for (let i = 0; i <= arguments.length - 2; i += 1) {
JSON.parse(arguments[i]);
for (let j = 0; j < Object.keys(arguments[i]).length; i += 1) {
let currentKey = Object.keys(arguments[i])[j];
console.log(currentKey);
}
}
}
我有一个问题,当我CONSOLE.LOG(currentKey)我只拿到了零,但我的想法是走在输入的第一个对象,然后json.parse它未来拿该对象中的所有键以及一个循环将分别取出每个单独的键,并使用正则表达式将其替换为模式字符串。但是这个Object.keys只返回零。哪里有问题?
你可以模拟它的jsfiddle? –
我并没有真正明白你打算做什么。 – Connum
对不起,输出不是零。它是从'1'到'28'的数字。我的意图是从一个对象中取出所有的键,并用它们的值替换它们的字符串模式。 – user7460099