JavaScript-从数组中删除
如何从该数组中删除测试值和空字符串?最好的方法是什么?如果您想删除单个项目,请检查它可能会帮助您JavaScript-从数组中删除,javascript,jquery,Javascript,Jquery,如何从该数组中删除测试值和空字符串?最好的方法是什么?如果您想删除单个项目,请检查它可能会帮助您 var arr = [ 4, "Pete", "test", 8, "John", "", "test" ]; 如果您想删除单个项目,请选中它可能会有所帮助 备选方案: 备选方案: 如果您知道数组中项目的索引,则可以轻松地使用类似拼接的方法 arr.索引,有多少个 howmany=要删除的项目数 如果您知道数组中项目的索引,则可以轻松地使用类似拼接的方法 arr.索引,有多少个 howmany=要
var arr = [ 4, "Pete", "test", 8, "John", "", "test" ];
如果您想删除单个项目,请选中它可能会有所帮助 备选方案: 备选方案:
如果您知道数组中项目的索引,则可以轻松地使用类似拼接的方法 arr.索引,有多少个 howmany=要删除的项目数
如果您知道数组中项目的索引,则可以轻松地使用类似拼接的方法 arr.索引,有多少个 howmany=要删除的项目数
重复-重复-排列拼接排列排列索引'test',1@jAndy不是真的,有多个项目要删除。在这里多次使用indexOf是值得的,因为你是对的。没有意识到有多个值。我的解决方案无论如何都是有缺陷的,因为-1在no-matcharr.splice arr.indexOf'test',1上出现假阳性@jAndy不是真的,有多个项目要删除。在这里多次使用indexOf是值得的,因为你是对的。没有意识到有多个值。无论如何,我的解决方案是有缺陷的,因为在no-matchArray.prototype.filter上有-1个误报。filter的工作方式是非破坏性的,您需要将值赋回arr。除此之外,为什么不直接调用return v!='测试'?Array.prototype.filter的工作方式是非破坏性的,您需要将值分配回arr。除此之外,为什么不直接调用return v!='测试'?
var arr = [ 4, "Pete", "test", 8, "John", "", "test" ];
var l = arr.length;
while( l-- ) {
if( arr[l] === "test" || arr[l] === "" ) {
arr.splice(l, 1);
}
}
//> arr
//[4, "Pete", 8, "John"]
var arr = [ 4, "Pete", "test", 8, "John", "", "test" ]
.filter(function(v){return String(v).length && v !== 'test';});
//=> arr = [4, "Pete", 8, "John"];