【发布时间】:2020-10-15 08:35:06
【问题描述】:
我正在尝试完成一个代码战练习,您只需根据字符串中的数字按顺序返回一串单词。
示例:
order("is2 Thi1s T4est 3a") // should return "Thi1s is2 3a T4est"
order("4of Fo1r pe6ople g3ood th5e the2") // should return "Fo1r the2 g3ood 4of th5e pe6ople")
这是我目前的尝试:
function order(words) {
let wordsArr = words.split(' ')
let result = [];
for (let i = 0; i < wordsArr.length; i++) {
for (let j = 0; j < wordsArr[i].length; j++) {
if (typeof wordsArr[i][j] === 'number') {
result[wordsArr[i][j]] = wordsArr[i]
}
}
}
return result
}
但是这只是返回一个空数组。我的逻辑是循环遍历wordsArr 中每个单词的每个字母,一旦typeof 字母匹配'number',然后我将wordsArr[i][j] 的results 数组索引设置为等于wordsArr[i]。不过,这并没有按照我的预期工作,我很困惑为什么!
【问题讨论】:
-
wordsArr是一个字符串,所以split()的结果永远不会有number类型的项目。 -
slappy 是对的。尝试将
wordsArr[i][j]包装在Number()中,如果适用,这应该将单数字符串字母转换为数字 -
codewars 不会让人失望
标签: javascript arrays for-loop nested-loops