Javascript 删除特定的只需要数组的第 n 个元素

Javascript Remove specific only needed n-th elements of array

本文关键字:数组 元素 删除 Javascript      更新时间:2023-09-26

例如我有一个数组

var 水果 = ["香蕉"、"橙子"、"苹果"、"芒果"、"应用程序"、"人"];

代码

fruits.splice(2, 2);

返回我的输出

香蕉,橙子,应用程序,男人

但是如何在不循环的情况下仅从数组中返回 1,3,4 个元素?

所以我会得到

橙子,芒果,应用

我想象一定是这样的

fruits.splice( fruits.indexOf(Orange,Mango,App), 1 );  
您可以使用

filter过滤掉某些项目:

fruits = fruits.filter(function (e, i) {
    return i === 1 || i === 3 || i === 4;
});

或者,如果您想根据其身份保留某些项目(这似乎是您在问题结束时尝试做的事情):

fruits = fruits.filter(function (e) {
    return e === "Orange" || e === "Mango" || e === "App";
});

与 JLRishe 的答案相同,但您可以传入要保留的元素列表:

var fruits = ["Banana", "Orange", "Apple", "Mango", "App", "Man"];
var list = 'Orange, Mango, App';
alert(strip(fruits, list)); // ["Orange", "Mango", "App"]
function strip(arr, list) {
    list = list.split(', ');
    return arr.filter(function (el) {
      return list.indexOf(el) > -1;
    });
}

您可以结合slicesplice方法:

 var fruits = ["Banana", "Orange", "Apple", "Mango", "App", "Man"]; 
 fruits.splice(2,1);
 var x = fruits.slice(1,4); 
 x;

解释:

  • splice 删除从索引 2 开始的 1 个元素 ( 即."苹果")。
  • slice 提取从索引 1 开始的 3 个元素(即。"橙色"、"苹果"、"芒果"、"应用程序";请记住,此时数组不再包含"Apple")。

变化(非破坏性):

var fruits = ["Banana", "Orange", "Apple", "Mango", "App", "Man"]; 
var x = fruits.slice(1,2).concat(fruits.slice(3,5));
x;