如何删除数组中的确切项目
Posted
技术标签:
【中文标题】如何删除数组中的确切项目【英文标题】: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 天左右? 【参考方案1】:您可以使用 array.filter 从数组中删除不需要的条目。它将保持原始数组不变并返回一个没有值的新数组。
var filteredArray = arr.filter((innerDay) => 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);
【讨论】:
谢谢它的帮助以上是关于如何删除数组中的确切项目的主要内容,如果未能解决你的问题,请参考以下文章