【问题标题】:Javascript: Select all but one item from array with slice()?Javascript:使用 slice() 从数组中选择除一项之外的所有项目?
【发布时间】:2014-01-01 21:24:23
【问题描述】:

假设我有这个数组:

var myarray = [a, b, c, d, e];

我想选择数组中除 c 之外的所有项目。

var myselection = myarray.slice(3,5);

这仅选择 d 和 e。我必须这样做:

var myselection = myarray.slice(3,5) + myarray.slice(0,2);

这会选择 d、e、a 和 b,但输出不能用作选择器,因为 myselection 现在在 e 和 a 之间没有逗号:“d,ea,b”

你知道解决这个问题的方法吗? 也许是负数?

非常感谢您的帮助!!! 李

【问题讨论】:

    标签: javascript arrays slice


    【解决方案1】:

    使用连接:

    myarray.slice(3,5).concat(myarray.slice(0,2))
    

    计算结果为数组[d,e,a,b]

    当然,如果你知道你只想删除索引为 2 的数组元素,那么就这样做:

    myarray.splice(2,1)
    

    myarray 现在是 [a,b,d,e]

    【讨论】:

      【解决方案2】:

      您可以改为splice

      arr = ['a','b','c','d','e'];
      arr.splice(2,1);
      --> arr == ['a','b','d','e'];
      

      如果您不想弄乱原始数组,您可以slice 复制然后splice

      arr = ['a','b','c','d','e'];
      var selector = arr.slice();
      selector.splice(2,1);
      --> selector == ['a','b','d','e'];
      

      【讨论】:

      • 第二部分不会像您发布的那样重复,arr = ['a','b','c','d','e']; var 选择器 = arr.slice().splice(2,1); --> 选择器将返回 ['c'];
      【解决方案3】:

      使用拼接:

      myArray.splice(key, 1);
      

      它会删除不需要的行。

      【讨论】:

      • 重要的是要注意这会改变原始数组。
      猜你喜欢
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      相关资源
      最近更新 更多