【发布时间】:2021-05-19 20:49:01
【问题描述】:
您好,我正在尝试进行代码大战 kata:https://www.codewars.com/kata/54a91a4883a7de5d7800009c/train/javascript
我知道我所做的很冗长,但我想在重构之前一步一步地做。
- 我已经拆分了用户输入的字符串
- 通过数组过滤只是为了得到数字并将其转换为NUMBER
- 将该数字增加 1
- 将数字改回字符串
- 现在我想将我的字符串编号添加到原始数组中,但它不起作用,我不明白为什么:S
我知道这不是 kata 的最终答案,但我只是在尝试,想知道为什么这不起作用...
function isNumeric(num){
return !isNaN(num)
}
function incrementString (string) {
const splitString = string.split("");
let numbers = Number(splitString.filter(el => isNumeric(el)).join("")); //[
'f', 'o', 'o', 'b',
'a', 'r', '0', '0',
'4', '2'
]
let incrementNumber = numbers +=1; // 43
let revertNumberToString = incrementNumber.toString(); // "43"
let test = splitString.push(revertNumberToString); // why can I not push the number 43 onto my original array?
console.log(test); // 11? why?
}
incrementString("foobar0042")
【问题讨论】:
-
它的工作 - 试试这个
console.log(splitString);。当您返回.push()方法时,您将获得更新后数组的长度作为返回值 - 在本例中为 11 -
@Lain
.filter(Number)将删除 是数字但也是假的零。
标签: javascript arrays algorithm