Write a function that traverses an object and returns all the strings which are numbers as Numbers. It should also traverse all the nested objects. { a: "1", b "foo", nested: { c: "3.0" d: 3.14159, grandchild: { name: "bar" age: "5" }, bonus: [1, "1", "2.7"] } } Expected result: { a: 1, b "foo", nested: { c: 3.0 d: 3.14159, grandchild: { name: "bar" age: 5 }, bonus: [1, 1, 2.7] } }