【问题标题】:Select specific value from an array javascript and remove it [duplicate]从数组javascript中选择特定值并将其删除[重复]
【发布时间】:2014-03-14 21:45:19
【问题描述】:

例如

a = [12, 213, 321, 312, 32, 42]

我想从中删除 213

但我不知道它在数组中的顺序

如何从数组中选择它然后将其删除?

【问题讨论】:

  • 你怎么知道你必须删除 213,而不是 32 或 42?它是来自某个来源的输入吗?
  • 基本上我正在做的是将这些数字插入到数组 a 中。我知道里面有什么,我知道我需要删除哪个。我只想知道如何选择和删除 213。但不是像 [1] 那样选择它

标签: javascript jquery


【解决方案1】:

试试这个

array.splice(array.indexOf(213), 1);

或者,如果有可能存在数组中不存在的数字,那么您可以像这样检查它

var index = array.indexOf(213)
if(index > -1){
  array.splice(index, 1);
}

【讨论】:

  • 当给定的数组具有相同的值时会发生什么?有些人想删除它。这段代码是否适用于所有可能的值。
  • @Bharatsoni 它将删除在序列中找到的第一个。
【解决方案2】:

您可以使用indexOf 方法获取元素的索引,并可以使用splice() 删除找到的元素。例如:-

var array = a = [12, 213, 321, 312, 32, 42];
var index = array.indexOf(213);
//now remove this with splice method

if (index > -1) {
    array.splice(index, 1);
}

【讨论】:

    【解决方案3】:

    可以使用.splice()删除元素,使用$.inArray()Array.indexOf()查找数组中元素的索引

    a = [12, 213, 321, 312, 32, 42]
    a.splice($.inArray(a, 213), 1)
    

    注意:Array.indexOf() 未被使用,因为IE compatibility

    【讨论】:

      【解决方案4】:
      a.splice(a.indexOf(213),1)
      

      var i = a.indexOf(213)
      a = a.slice(i,i+1,1)
      

      【讨论】:

        【解决方案5】:

        可以用indexOf找到值的索引,然后拼接数组去掉索引。

        类似:

        var idx = a.indexOf(213);
        if (idx > -1) {
          a.splice(idx, 1);
        }
        

        【讨论】:

        • 哇,不敢相信所有这些答案都是在我写我的时候出现的!现在你有选择了;)
        【解决方案6】:

        我认为有两种方法可以做到这一点:

        更简单的方法是简单地遍历数组并将其中的所有值推送到另一个数组中,除了您要删除的值。然后你可以将之前的数组变量重新定义为新的数组。

        另一种方法可能是使用拼接方法,但我不熟悉它。

        【讨论】:

          猜你喜欢
          • 2016-09-15
          • 1970-01-01
          • 2013-06-12
          • 2015-07-03
          • 1970-01-01
          • 2012-12-09
          • 2020-01-30
          • 2018-05-20
          • 1970-01-01
          相关资源
          最近更新 更多