Javascript 按名称从数组中删除项
我正在尝试编写一个函数,以按名称从数组中删除项。尽管传入了arr.indexOf(i),代码仍会不断删除数组中的第一项(索引0)Javascript 按名称从数组中删除项,javascript,Javascript,我正在尝试编写一个函数,以按名称从数组中删除项。尽管传入了arr.indexOf(i),代码仍会不断删除数组中的第一项(索引0) 让水果=[苹果、桔子、葡萄、香蕉] 函数removeFlavorByName(arr,字符串){ 让占位符; 对于(设i=0;i如果你想简化你的代码,这里是相同的函数清理。因为你使用的是indexOf,你不需要循环 水果=[“苹果”、“橙子”、“葡萄”、“香蕉”] 函数removeFlavorByName(arr,字符串){ 索引=arr.indexOf(字符串)
让水果=[苹果、桔子、葡萄、香蕉]
函数removeFlavorByName(arr,字符串){
让占位符;
对于(设i=0;i如果你想简化你的代码,这里是相同的函数清理。因为你使用的是indexOf
,你不需要循环
水果=[“苹果”、“橙子”、“葡萄”、“香蕉”]
函数removeFlavorByName(arr,字符串){
索引=arr.indexOf(字符串);
阵列拼接(索引,1)
返回arr
}
log(removeFlavorByName(水果,“苹果”);
另一种可能更简单、更紧凑的解决方案是使用过滤器内置方法
水果=[“苹果”、“橙子”、“葡萄”、“香蕉”]
常量removeFlavor=(arr,string)=>arr.filter((项)=>item!=string)
console.log(删除favorByName(水果,“苹果”);
另一种解决方案是使用过滤功能
水果=[“苹果”、“橙子”、“葡萄”、“香蕉”]
函数removeFlavorByName(arr,字符串){
返回arr.filter(水果=>水果!==字符串);
}
log(删除FlavorByName(水果,“苹果”);
您需要将数据添加为双引号中的字符串
let fruits = ["apples", "oranges", "grapes", "bananas"];
function removeFlavorByName(arr, string) {
let newArray = arr.filter((item) => item !== string);
return newArray;
}
console.log(removeFlavorByName(fruits, "apples"));
来自@的解决方案非常好
请注意,如果数组中不存在字符串,indexOf将返回-1。如果将其与.splice一起使用,则最后一项将被提取。indexOf
具有大写字母OThanks。我修复了它,但出现了相同的错误。它似乎认为indexOf总是返回0,这不是相同的错误。如果它返回0,则意味着现在您无法获得“arr.indexof不是一个函数”。代码的第一行引用了尚未声明的变量。在示例中,数组应该包含字符串值:let fruits=[“apples”、“oranges”、“grapes”、“bananas”];我的数组有字符串。我只是在上面匆匆编写了它,但在代码中它确实有“apples”“等等。我声明了唯一一个变量,它是占位符,用于存储数组中字符串的索引