堆垛机,请帮助我疲惫的初学者的大脑,让我知道我的位置。
我的函数接受小写字符串作为唯一参数。可以返回相同的字符串,并且每个单词中的所有偶数索引字符均大写。但是实际输出与我的预期输出不同。
例如:
async def get(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
print(url, resp.status)
print(url, await resp.text())
loop = asyncio.get_event_loop()
tasks = [
get("http://www.google.com"),
get("http://www.google.com")
]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
async def get_via_thread(url):
loop = asyncio.get_event_loop()
try:
response = await loop.run_in_executor(None, functools.partial(requests.get, url=url))
答案 0 :(得分:2)
使用indexOf
查找字符时,将获得 first 出现的索引,而不一定是您最初查看的那个的索引。同样,replace
(在给定字符串值作为第一个参数时)将替换 first 出现的地方,不一定替换您感兴趣的那个地方。
这是一个修复程序,没有太多改变您的原始照片:
function toWeirdCase(string){
string = string.split(" ");
for (let i = 0; i<string.length; i++) {
for (let x = 0; x < string[i].length; x++) {
if (x % 2 == 0) {
// Only modify the single character of interest. The rest is sliced in
string[i] = string[i].slice(0, x) + string[i][x].toUpperCase() + string[i].slice(x+1);
}
}
}
return string.join(" ");
}
console.log(toWeirdCase('harry enjoys reading books'))
console.log(toWeirdCase('gooooooogle search in vain'));
您也可以采用不同的方法,而不是将字符串拆分为单词,而只是在看到空格时重置标志。
在这里,您可以看到使用reduce
实现的想法,从而产生了功能编程样式的解决方案:
function toWeirdCase(string){
return [...string].reduce(
([str, j], c, i) => c === " " || j ? [str + c, 0] : [str + c.toUpperCase(), 1],
["", 0]
)[0];
}
console.log(toWeirdCase('harry enjoys reading books'))
console.log(toWeirdCase('gooooooogle search in vain'));
答案 1 :(得分:1)
基本上,当您连续使用相同字符时,您的代码会出现问题。前两个答案已正确解释了它们。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="a 1">11</td>
<td class="a 2">22</td>
<td class="a 3">33</td>
</tr>
<tr>
<td class="b 4">44</td>
<td class="b 5">55</td>
<td class="b 6">66</td>
</tr>
</table>