【问题标题】:how to delete the exact item in the array如何删除数组中的确切项目
【发布时间】:2022-01-16 06:54:49
【问题描述】:

我想删除数组中的确切项目,但 pop 将删除最后一个项目。我能做些什么呢?

const arr = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']

var num = prompt("Enter a Number");
for (var i = 0; i < num; i++) {
  var day = prompt("Enter Days: ");
  if (arr[i].includes(day)) arr.pop(day)
}
console.log(arr);

【问题讨论】:

  • 为什么是这个数字?只循环前 3 天左右?

标签: javascript html arrays data-structures


【解决方案1】:

您可以使用 array.filter 从数组中删除不需要的条目。它将保持原始数组不变并返回一个没有值的新数组。

var filteredArray = arr.filter((innerDay) =&gt; innerDay !== day)

【讨论】:

    【解决方案2】:

    您可以从提示您要删除的日期开始。然后循环遍历数组,如果是 includes() 项,则可以使用 splice() 删除 i 索引处的特定项。

    const arr = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
    
    var day = prompt("Enter Day: ");
    for (var i = 0; i < arr.length; i++) {
      if (arr[i].includes(day)) arr.splice(i, 1)
    }
    console.log(arr);

    【讨论】:

    • 非常感谢您
    【解决方案3】:

    您首先需要检查该元素(天)是否存在于数组中。如果是,您将获得它的索引。使用它使用splice 安全地删除它。我认为以上是您想要实现的目标。如果你是按照问题编号的顺序来寻找那一天,或许你可以关注@axtck的回答。

    const arr = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
    
    var num = prompt("Enter a Number");
    for (var i = 0; i < num; i++) {
      var day = prompt("Enter Days: ");
      var index = arr.indexOf(day)
      if (index > -1) arr.splice(index, 1)
    }
    console.log(arr);

    【讨论】:

    • 感谢您的建议,这真的很有帮助
    【解决方案4】:

    你可以使用filter():

    const arr = ['monday', 'tuesday', 'wednesday',
        'thursday', 'friday', 'sturday', 'sunday'
    ]
    
    function removeDay(arr, day) {
        return arr.filter(el => el !== day);
    }
    var day = prompt("Enter Day: ");
    var newArray = removeDay(arr, day);
    console.log(newArray);

    【讨论】:

    • 谢谢它的帮助
    猜你喜欢
    • 2021-10-19
    • 2023-02-23
    • 2012-12-25
    • 2018-01-14
    • 2012-02-20
    • 2016-09-07
    • 1970-01-01
    相关资源
    最近更新 更多