Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Splice函数,用于删除数组中6/7的条目_Javascript_Arrays_Splice - Fatal编程技术网

Javascript Splice函数,用于删除数组中6/7的条目

Javascript Splice函数,用于删除数组中6/7的条目,javascript,arrays,splice,Javascript,Arrays,Splice,我在试着理解我哪里出了问题。假设我有一个数组: result = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] 我想去掉数组中的每6个条目,将第7个条目保留在那里,然后执行一个。实际上,我希望去掉数组中6/7的值。我认为splice()可能非常适合这样做,但不知何故,下面的代码似乎不起作用。有什么建议吗 非常感谢大家 function random_select () { for(var i

我在试着理解我哪里出了问题。假设我有一个数组:

result = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]      
我想去掉数组中的每6个条目,将第7个条目保留在那里,然后执行一个。实际上,我希望去掉数组中6/7的值。我认为splice()可能非常适合这样做,但不知何故,下面的代码似乎不起作用。有什么建议吗

非常感谢大家

function random_select ()
    {
      for(var i=0; i < result.length; i+7)
      {
        result.splice[i,6];

      }
    };
函数随机选择()
{
对于(变量i=0;i
试试这个:

var result = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
for (var i = 0; i < result.length; i++) result.splice(i, 6);
var结果=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
对于(var i=0;i
这将:

  • 首先删除
    [0,1,2,3,4,5]
    ,然后将
    [6,7,8,9,10,11,12,13,14,15,16]
    删除
  • 接下来,删除
    [7,8,9,10,11,12]
    ,然后让
    [13,14,15,16]
    继续
  • 最后删除
    [13,14,15,16]
  • 因此,结果是
    [6,13]
    。这就是你想要的吗?

    试试这个:

    var result = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
    for (var i = 0; i < result.length; i++) result.splice(i, 6);
    
    var结果=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
    对于(var i=0;i
    这将:

  • 首先删除
    [0,1,2,3,4,5]
    ,然后将
    [6,7,8,9,10,11,12,13,14,15,16]
    删除
  • 接下来,删除
    [7,8,9,10,11,12]
    ,然后让
    [13,14,15,16]
    继续
  • 最后删除
    [13,14,15,16]

  • 因此,结果是
    [6,13]
    。这就是您想要的吗?

    有两个问题:(a)您正在修改数组,同时从头到尾对其进行迭代。你必须以相反的顺序迭代它。(b) 您永远不会推进循环索引
    i+7
    应该是
    i+=7
    。(c)
    splice
    是一个函数,必须像调用
    splice(x,y)
    而不是
    splice[x,y]
    一样调用它。将
    i+1
    更改为
    i++
    ,并将
    结果更改为
    result.splice(i+1,6)
    。由于数组已发生变异并重新编制索引,因此当前索引将成为
    .splice()
    之后的下一项。因此,我们在下一个索引上开始变异,因此您所需要做的就是超越当前索引,以获得下一个倍数的
    7
    。如果需要删除
    0
    ,请在循环后添加
    result.shift()
    。(重新表述我以前的评论)有两个问题:(a)在从头到尾迭代数组时,您正在修改数组。你必须以相反的顺序迭代它。(b) 您永远不会推进循环索引
    i+7
    应该是
    i+=7
    。(c)
    splice
    是一个函数,必须像调用
    splice(x,y)
    而不是
    splice[x,y]
    一样调用它。将
    i+1
    更改为
    i++
    ,并将
    结果更改为
    result.splice(i+1,6)
    。由于数组已发生变异并重新编制索引,因此当前索引将成为
    .splice()
    之后的下一项。因此,我们在下一个索引上开始变异,因此您所需要做的就是超越当前索引,以获得下一个倍数的
    7
    。如果需要删除
    0
    ,请在循环后添加
    result.shift()
    。(重新表述我之前的评论)嘿,阿迪特,这个关于费利克斯和特拉恩的建议对我来说做得很好,非常感谢!嘿,阿迪特,这是费利克斯和特拉恩的建议,对我来说做得很好,非常感谢!