Jquery 返回原始数组中没有指定元素的新数组,一行吗?

Jquery 返回原始数组中没有指定元素的新数组,一行吗?,jquery,arrays,Jquery,Arrays,我做了一些研究,但找不到任何与我的用例完全匹配的东西 我需要快速返回一个新数组,在原始数组中没有元素。换句话说,我需要以某种方式组合splice/indexOf/等,但下面的操作失败了:它只返回我要删除的一个元素“TEST” 下面的函数需要返回一个新数组,其中包含除已删除项以外的所有内容 函数newArrayWithout(数组,元素){ 返回数组.拼接(数组.indexOf(elem),1); } 变量数组=[“abc”、“def”、“测试”、“ghi”]; var newarray=new

我做了一些研究,但找不到任何与我的用例完全匹配的东西

我需要快速返回一个新数组,在原始数组中没有元素。换句话说,我需要以某种方式组合
splice/indexOf/
等,但下面的操作失败了:它只返回我要删除的一个元素“TEST”

下面的函数需要返回一个新数组,其中包含除已删除项以外的所有内容

函数newArrayWithout(数组,元素){
返回数组.拼接(数组.indexOf(elem),1);
}
变量数组=[“abc”、“def”、“测试”、“ghi”];
var newarray=newarraywhithout(数组,“测试”);
log('newarray:'+newarray)

检查是否解决了您的问题:

var myarr = ["abc", "def", "TEST", "ghi"];

var r = myarr.filter(function(el){
   return el != "TEST"; 
});

alert(r);
console.log(r);

使用和,您可以做您已经拥有的事情。但是您需要返回的是数组,因为
.splice()
的返回值是被删除的元素。而不是剩下的元素。如果要保留原始数组,需要先复制该数组。比如说

var数组=[“abc”、“def”、“TEST”、“ghi”];
//首先复制数组的值
var newArray=array.slice();
//使用待拆卸元件的索引进行拼接
拼接(newArray.indexOf(“测试”),1);
log('original:'+数组);
log('new:'+newArray)