我需要另一双眼睛。我在这里一定缺少一些小东西。
我输入一个字符串,该字符串被分解为一个单词数组,然后获取每 5 个索引(单词)并将它们连接到自己的索引中。
这是通过递归调用来完成的。
递归的最终调用打印了我在内部寻找的正确结果,但外部的实际返回值是未定义的。
请帮我一下。
const limit = str => {
const arr = str.split(' ');
function recursiveLimit(arr, acc = []) {
if (arr.length !== 0) {
const toSlice = arr.length < 5 ? arr.length : 5;
const newArr = arr.slice(toSlice);
const newAcc = [...acc, arr.slice(0, toSlice).join(' ')];
recursiveLimit(newArr, newAcc);
} else {
console.log('final array: ', acc); // the array I want to return (looks good here)
return acc; // return it
}
}
return recursiveLimit(arr); // undefined …
Run Code Online (Sandbox Code Playgroud)我正在开发一个使用 递归查找评论线程的功能$graphLookUp
,我几乎已经拥有它了。(虽然方式有点复杂,但它正在起作用!)
我需要的最后一步如下:
不要将嵌套posteriorThread
作为根数组()的属性$$ROOT
,而是将其合并到根本身。
const posteriorThread = await Comment.aggregate([
{
$match: {
_id: post.threadDescendant
}
},
{
$graphLookup: {
from: 'baseposts',
startWith: '$threadDescendant',
connectFromField: 'threadDescendant',
connectToField: '_id',
as: 'posteriorThread'
}
},
{
$unwind: '$posteriorThread'
},
{
$sort: { 'posteriorThread.depth': 1 }
},
{
$group: {
_id: '$_id',
posteriorThread: { $push: '$posteriorThread' },
root: { $first: '$$ROOT' }
}
},
{
$project: {
'root.posteriorThread': 0
}
},
{
$replaceRoot: {
newRoot: {
$mergeObjects: [ …
Run Code Online (Sandbox Code Playgroud) 如何在 zsh 中使用正则表达式变量,就像在 bash 中一样?我只能让 zsh 使用内联正则表达式。我只是想测试一个只包含字母数字、下划线或句点的字符串,但不包含破折号。正如您所看到的,内联正则表达式和正则表达式变量在 bash 中按预期工作,但 zsh 只匹配内联正则表达式。
\n#!/bin/bash\n\nRE='[0-9A-Za-z_\\.]'\n\nfor test in $@; do\n echo -e "bash test: $test"\n\n if [[ "${test//[0-9A-Za-z_\\.]/}" = "" ]]; then\n echo -e '\\tmatch inline'\n fi\n\n if [[ "${test//$RE/}" = "" ]]; then\n echo -e '\\tmatch var'\n fi\n\ndone\n\n
Run Code Online (Sandbox Code Playgroud)\n\xe2\x9d\xaf./bash-regex-test.sh foo_bar foo-bar
\n输出:
\n\nbash test: foo_bar\n match inline\n match var\nbash test: foo-bar\n\n
Run Code Online (Sandbox Code Playgroud)\n#!/bin/zsh\n\n\nRE='[0-9A-Za-z_\\.]'\n\nfor test in $@; do\n echo "zsh test: $test"\n\n if [[ "${test//[0-9A-Za-z_\\.]/}" = …
Run Code Online (Sandbox Code Playgroud) 我知道有很多关于这个主题的帖子,但我似乎找不到这个具体的答案。
显然,执行此操作的一种方法是git commit
分阶段更改 、git reset --hard HEAD
then git reset --soft HEAD~
、then git add -u
,这是相当冗长的。
默认行为reset
是--mixed
实现与我所要求的相反的结果。当然必须有一个单一命令的解决方案,或者至少是一个更好的方法。