JavaScript Array模拟C#list RemoveAll实现删除符合条件的元素
来源:互联网 发布:js radio check 编辑:程序博客网 时间:2024/04/19 12:29
作为一个跨平台多语言编程爱好者的我来说,当我用了一次C#list 的linq的RemoveAll后,再敲JavaScript 的数组想也用这个方法才发现这语言压根是弱爆了,不得已准备自己实现一下JS的Array的几个删除数据的方法。
注意:有不少网友采用的是逆向思维,从原数组提取出符合条件的数组的方式来规避JS Array 没提供linq那样RemoveAll,但是这会导致多一次内存开辟,而且原数组没有改变,
并非最优解
JS中Array 删除元素,主要利用原生Array的函数Array.splice
splice函数可以说是一个功能全面的函数
定义和用法
splice() 方法用于插入、删除或替换数组的元素。
语法
arrayObject.splice(index,howmany,element1,.....,elementX)
必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
element1可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。elementX可选。可向数组添加若干元素。splice应用例子
var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "<br />")arr.splice(1,1,"William")document.write(arr + "<br />")//结果如下/*George,John,Thomas,James,Adrew,MartinGeorge,William,Thomas,James,Adrew,Martin*/我们该怎么利用splice,很简单我们我对准数组索引index,然后arr.splice(index,1)这样一个一个删就行但是要注意,没删除一个元素后面的元素索引自动往前对齐,数组长度也会减小,那么看到这废话不多说,直接上代码,绝对好用包你满意,.
Array.prototype.RemoveAll = function (func) { var arr = this; var len = arr.length; if (func == undefined) { alert("数组RemoveAll参数不能为空"); return; } for (var i = 0; i < len; i++) { var entity = arr[i]; var result = false; if (func && func(entity) === true) { arr.splice(i, 1); len--; i--; } }}用法超级Easy
var arr = new Array(6)
arr[0] = {name:"George",age:11};
arr[1] = {name:"John",age:11}";
arr[2] = {name:"Thomas",age:11}";
arr[3] = {name:"James",age:17}";
arr[4] = {name:"Adrew",age:18}";
arr[5] = {name:"Martin",age:19}";
//下面开始移除arr中年龄<18岁的未成年的小伙伴
arr.RemoveAll(function(obj){ return obj.age<18; });//只要一句话,没错就是这么简单
- JavaScript Array模拟C#list RemoveAll实现删除符合条件的元素
- list遍历的时候,删除某个符合条件的元素
- list遍历的时候,删除某个符合条件的元素
- C++ Vector 删除符合条件的元素
- 删除list中符合条件的内容
- List中删除元素remove和removeAll
- 如何在遍历list,vector,map时删除符合条件的元素
- 如何在遍历list,vector,map时删除符合条件的元素
- vector, list, map在遍历时删除符合条件的元素
- 遍历删除 list 中符合条件的元素时(for, Remove),应从后往前进行
- [C#]list的removeall用法
- STL vector用法以及如何删除符合条件的元素
- 循环删除集合中符合条件的元素
- C++ vector中删除符合条件的元素
- Java中从list中删除符合条件的数据
- 遍历list并删除符合条件的数据
- Java中从list中删除符合条件的数据
- java的List中使用filter过滤出符合特定条件的元素List
- windows后台服务如何部署到Linux
- Mac 下配置ionic
- Handler详解系列——利用Handler在主线程与子线程之间互发消息,handler详解
- iOS 中的数据持久化2.0-bruceyou1990
- Android笔记之如何获取屏幕宽高
- JavaScript Array模拟C#list RemoveAll实现删除符合条件的元素
- Java8 Lambda表达式教程
- JVM调优总结:一些概念
- 写在参观百度之前:
- PB下使用TreeView控件实现多级分类检索
- iOS APP提交上架最新流程
- 面试教训2
- Android消息推送机制
- pthread线程清理