假设我们有一个简短的JSON对象,如下所示:
const obj = {"name":"sam","age":"24","isMarried":"false"};
在这里,一些Number和Boolean值错误地被强制转换为String。
就像age属性是一个数字,而isMarried属性是一个布尔值。我们的工作是编写一个函数,该函数接受一个这样的对象,并使用正确的对象正确更改这些不正确的数据类型。
为此的代码将是-
const obj = { "name":"sam", "age":"24", "isMarried":"false" }; const convertToOriginal = (obj = {}) => { const keys = Object.keys(obj); for(let i = 0; i < keys.length; i++){ const key = keys[i]; const num = parseInt(obj[key], 10); const val = obj[key]; if(num && String(num) === val){ obj[key] = num; } else if(val === 'true' || val === 'false'){ obj[key] = Boolean(val); }; }; }; convertToOriginal(obj); console.log(obj);
输出结果
控制台中的输出将是-
{ name: 'sam', age: 24, isMarried: true }