Javascript 如何删除包含特定短语的特定值之间的数组项

Javascript 如何删除包含特定短语的特定值之间的数组项,javascript,arrays,Javascript,Arrays,我正在使用Javascript。我有一个数组,我想过滤掉包含特定短语的特定值之间的所有数组值。以下是一个示例阵列: var array = [ '[en]: The sun rises at 6:00', '[en]: Its time for brakefast', '[en]: comment_start', '[en]: Lorun ipsum a dummy text', '[en]: Mauris consequat m

我正在使用Javascript。我有一个数组,我想过滤掉包含特定短语的特定值之间的所有数组值。以下是一个示例阵列:

   var array = [
      '[en]: The sun rises at 6:00',
      '[en]: Its time for brakefast',
      '[en]: comment_start',
      '[en]: Lorun ipsum a dummy text',
      '[en]: Mauris consequat massa ante',
      '[en]: In hac habitasse platea dictumst',
      '[en]: comment_end',
      '[en]: The sun sets at 6:30'
    ]
根据上面的javascript数组示例,如何删除包含短语comment\u start和comment\u end的值之间的所有数组值


目前,我没有使用任何第三方库来喜欢Loadash来处理数组和对象。

我们可以尝试类似的方法,我们将在点击评论部分后开始过滤,然后在退出后停止

您还可以以类似的方式使用array.reduce

变量数组=[ ’[en]:太阳在6点升起, “[en]:是时候进行制动了”, “[en]:注释_start”, “[en]:Lorun ipsum a dummy text”, “[en]:Mauris Consequeat massa ante”, [en]:在hac habitasse platea dictumst中, “[en]:注释_end”, “[en]:太阳在6:30落下” ]; var inCommentSection=假; var result=array.filterv=>{ if!非公度段{ 非公度段=v.includecomment\u启动; }否则{ 非公度段=!v.includecomment\u end; 返回false; } 返回!不匹配部分; };
console.logResult,result 我们可以尝试这样的方法,一旦我们点击了评论部分,我们就开始过滤,然后一旦我们退出,就停止过滤

您还可以以类似的方式使用array.reduce

变量数组=[ ’[en]:太阳在6点升起, “[en]:是时候进行制动了”, “[en]:注释_start”, “[en]:Lorun ipsum a dummy text”, “[en]:Mauris Consequeat massa ante”, [en]:在hac habitasse platea dictumst中, “[en]:注释_end”, “[en]:太阳在6:30落下” ]; var inCommentSection=假; var result=array.filterv=>{ if!非公度段{ 非公度段=v.includecomment\u启动; }否则{ 非公度段=!v.includecomment\u end; 返回false; } 返回!不匹配部分; };
console.logResult,result 下面是一个使用.indexOf和.slice的解决方案。 根据注释编辑以不使用“[en]”

var array = [
      '[en]: The sun rises at 6:00',
      '[en]: Its time for brakefast',
      '[en]: comment_start',
      '[en]: Lorun ipsum a dummy text',
      '[en]: Mauris consequat massa ante',
      '[en]: In hac habitasse platea dictumst',
      '[en]: comment_end',
      '[en]: The sun sets at 6:30'
    ]
const start = array.indexOf(array.find(element => {
                return element.match('comment_start')
              })
            )
const end = array.indexOf(array.find(element => {
                return element.match('comment_end')
              })
            )
const middleComments = array.slice(start + 1, end)

return middleComments

下面是一个使用.indexOf和.slice的解决方案。 根据注释编辑以不使用“[en]”

var array = [
      '[en]: The sun rises at 6:00',
      '[en]: Its time for brakefast',
      '[en]: comment_start',
      '[en]: Lorun ipsum a dummy text',
      '[en]: Mauris consequat massa ante',
      '[en]: In hac habitasse platea dictumst',
      '[en]: comment_end',
      '[en]: The sun sets at 6:30'
    ]
const start = array.indexOf(array.find(element => {
                return element.match('comment_start')
              })
            )
const end = array.indexOf(array.find(element => {
                return element.match('comment_end')
              })
            )
const middleComments = array.slice(start + 1, end)

return middleComments

您的数组可以/可能包含多个注释\u开始和注释\u结束?首先,您可以获取开始删除的索引和停止删除的索引,然后使用splice删除任何数组不能包含多个短语您的数组可以/可能包含多个注释\u开始和注释\u结束?首先,您可以获取开始删除和索引的索引在哪里停止删除,然后使用剪接到DeleTeNo数组不能包含多个短语,但实际上,我不想考虑[En]。相反,我想在values中搜索短语。检查所选答案,这正是我要搜索的。好的。我编辑了我的答案以满足您的要求。这仍然是一个有效的解决方案,所以我会继续为其他人提供参考。这很有效。谢谢分享。另外,请检查特里的答案,这是更干净和更瘦的方式。You-Fuffic,但实际上,我不想考虑[这里]。相反,我想在values中搜索短语。检查所选答案,这正是我要搜索的。好的。我编辑了我的答案以满足您的要求。这仍然是一个有效的解决方案,所以我会继续为其他人提供参考。这很有效。谢谢分享。另外,请检查特里的答案,这是一个更干净,更精简的方式。