来自codewars的Javascript索引
javascript indexes from codewars
我正在处理以下代码战问题。问题是这样的:
指令写一个函数大写,接受一个字符串(单词)作为论点。函数必须返回一个包含字符串中所有大写字母的索引。
例子测试。assertSimilar(首都("CodEWaRs"),[0,3、4、6]);
我的解决方案是:
function capitals(word){
var ara = []
for(var i = 0; i < word.length; i++){
if(word[i] == word[i].toUpperCase()){
ara.push(word.indexOf(word[i]))
}
}
return ara
}
无论何时向它传递字符串,代码都能正常工作。唯一的问题是我得到了相同的索引重复拼写。例如,capitals("HeLLo")
返回[0, 2, 2]
而不是[0, 3, 4]
。有办法解决这个问题吗?
word.indexOf(word[i])
返回第一个索引,您应该简单地将i
推入数组。
说出来
ara.push(i)
代替
ara.push(word.indexOf(word[i]))
当您输入word.indexOf(word[i]))
时,它将返回获得word[i]
的第一个index
。所以对于L
它给出了2
你可能会觉得上面的解决方案令人满意,但我认为我会在ES2015中提供一个更实用的方法。
const capitals = word => word.split('') // split word into an array
.map((letter, idx) => letter === letter.toUpperCase() ? idx : false)
// return a new array that gives the index of the capital letter
.filter(num => Number.isInteger(num));
// filter through each item in the new array and return
// a newer array of just the index values
相关文章:
- 在JavaScript中通过索引从对象数组中获取值
- Javascript:根据对象的嵌套数组中的值,在数组中查找对象的索引
- 用javascript查询lucene索引
- Javascript获取所有锚链接的索引
- 传递给 PHP 表单时 JavaScript 动态变量上的未定义索引
- 强制谷歌为javascript背景图像编制索引
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- Javascript:foreach跳过第一个索引(0)
- 获取javascript中输入元素的索引
- Javascript排序索引链接数组
- For循环with oit索引javascript
- 无法获取页面上单选按钮的值或索引.[Javascript]
- JavaScript 获取最后一个重复值索引 JavaScript
- 随机图像出现z索引javascript延迟
- 如何使用行索引javascript禁用getelement()
- 查找一个字符的索引- JavaScript
- 删除一个键后重新索引javascript数组/对象
- 索引javascript数组出现问题