Я новичок в кодировании, и мне задали этот вопрос;
Создайте функцию, которая принимает строку с путаницей букв и цифр.Следует сложить вместе все числа, которые появляются в строке, и вернуть итоговое значение.
E.g. 'foo5bar6cat1' => 12
'foo99cat' => 18
Совет. Для этого может быть полезно знать, что значение NaN
в JavaScript ведет себя странно.Например, если вы делаете typeof NaN
, он говорит вам, что это "number"
.Странно, а?
Код, который я написал, таков:
function sumDigitsFromString(str) {
let nums = []
let sum = 0
for (let i = 0; i < str.length; i++) {
if (typeOf (arr[i]) === "number") {
nums.push(str[i])
}
}
for (let i = 0; i < nums.length; i++){
sum.push(nums[i] + sum)
}
return sum
}
Тест, с которым работает мой код, таков:
describe("sumDigitsFromString", () => {
it("picks out a digit from a string and returns", () => {
expect(sumDigitsFromString("foo5foo")).to.equal(5);
});
it("sums multiple digits from a string", () => {
expect(sumDigitsFromString("5foo5foo")).to.equal(10);
});
it("returns a seum of several digits in a string", () => {
expect(sumDigitsFromString("hello1world5this3is2a2string")).to.equal(13).;
});
});
ДозаУ кого-нибудь есть предложения, как исправить мой код?