我有一個任務,用字符串模式中的所有鍵替換它們的值。輸入是類似的東西:
用給定字符串模式中的值替換對象鍵
[
'{ "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