1) 数组中是否存在指定值,存在就删除

 var array = ['a', 'b', 'c', 'd']var index = array.indexOf('c')if (index > -1) { // >0表示存在array.splice(index, 1) //存在就删除}console.log(array) //['a', 'b', 'd']

2) 数组对象中是否存在指定值,存在就删除

 var timeList =[{caseStage:'退款',operatorTime:'2021-5-27 09:16:16'},{caseStage:'退款中',operatorTime:'2021-5-28 09:16:16'},{caseStage:'退款失败',operatorTime:'2021-5-28 10:16:16'},{caseStage:'退款成功',operatorTime:'2021-5-29 09:16:16'},]for (var i = 0; i < this.timeList.length; i++) {//判断caseStage为'失败'的对象是否存在if (this.timeList[i].caseStage.indexOf('失败') > -1) {var index = ithis.timeList.splice(index, 1) //存在即删除该索引下的对象}}console.log(this.timeList)

但是我用上面这种方法会出bug,然后就用了下面的方法;
新建一个临时数组,把符合条件的放进临时数组,不符合条件的就不管了

 var timeList =[{caseStage:'退款',operatorTime:'2021-5-27 09:16:16'},{caseStage:'退款中',operatorTime:'2021-5-28 09:16:16'},{caseStage:'退款失败',operatorTime:'2021-5-28 10:16:16'},{caseStage:'退款成功',operatorTime:'2021-5-29 09:16:16'},]var temp_arr = []for (var i = 0; i < this.timeList.length; i++) {//没有‘失败’字段的,重组临时数组赋值if (this.timeList[i].caseStage.indexOf('失败') == -1) {var temp_obj = {}temp_obj.caseStage = this.timeList[i].caseStagetemp_obj.operatorTime = this.timeList[i].operatorTimetemp_arr = temp_arr.concat(temp_obj)}}this.timeList = temp_arrconsole.log(this.timeList) // {caseStage:'退款',operatorTime:'2021-5-27 09:16:16'},// {caseStage:'退款中',operatorTime:'2021-5-28 09:16:16'},// {caseStage:'退款成功',operatorTime:'2021-5-29 09:16:16'},

出bug的原因:

比如说你的数组是:
【0,1,2,3,4,5】 ,总共6项,i<6对吧,
循环删除数组,比如删除了1,那么数组长度变成了5 ,i<5
继续循环删除了3,数组长度变成了4,i<4,不符合for循环条件
那么在i=4的时候就跳出了循环,相当于只循环了4次,我们是希望循环6次,删除不符合条件的数据的,但结果只循环了4次,所以会出bug

js循环数组判断数组(数组对象)中是否含有某字段,有的话去除,返回新数组相关推荐

  1. js移除数组中的元素(返回新数组)

    移除数组中的元素(返回新数组) 移除数组 arr 中的所有值与 item 相等的元素.不要直接修改数组 arr,结果返回新的数组. 输入:[1,2,3,4,2] ,2 输出:[1,3,4] 第一种解决 ...

  2. 数组去重:将一数组中重复的元素去掉剩余部分保存到新数组中

    思路:将旧数组中不重复的元素选取出来放到新数组中,重复的元素只保留一个放到新数组中.首先,需要定义一个新数组用来把保存元素,使用for循环来对旧数组进行遍历.根据旧数组中的元素去查询新数组,利用if条 ...

  3. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  4. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  5. js中显示一个指定html文档,JS实现选定指定HTML元素对象中指定文本内容功能示例...

    本文实例讲述了JS实现选定指定HTML元素对象中指定文本内容功能.分享给大家供大家参考,具体如下: 该功能用处多多,可以灵活运用之!主要函数如下: //选中文本中指定部分 function selec ...

  6. containskey java_Java Map.containsKey()方法:判断Map集合对象中是否包含指定的键名

    搜索热词 Java 集合类中的 Map.containsKey() 方法判断 Map 集合对象中是否包含指定的键名.如果 Map 集合中包含指定的键名,则返回 true,否则返回 false. 语法: ...

  7. java get null_java 获取对象中为null的字段实例代码

    下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述: private static String[] getNullPropertyNames(Object sourc ...

  8. unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度

    var arr = [1, 2];arr.unshift(0); //result of call is 3, the new array length //arr is [0, 1, 2]arr.u ...

  9. 在 MySQL 中查找含有目标字段的表

    要查询数据库中哪些表含有目标字段,可以使用语句: SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`COLUMNS` WHERE COLU ...

最新文章

  1. 一文读懂Spring中的AOP机制
  2. Java中的static关键字解析 转载
  3. python可视化神器_详解Python可视化神器Yellowbrick使用
  4. 深入 Lucene 索引机制
  5. 自动生成业务单据流水号方案
  6. github代码_GitHub代码空间如何提高生产力和降低障碍
  7. c++ mysql ctime_CTime::Format
  8. leetcode24题:两两交换链表的节点
  9. FCKeditor 2.6.4.1配置
  10. 箱线图怎么看_K线的48种不同类型全解(建议收藏),教你怎么看懂K线图
  11. Android关机流程解析
  12. WEB应用程序的开发和研究
  13. ipad 模拟 触控板_如何将蓝牙鼠标或触控板连接到iPad
  14. 检测图片是否被PS过,代码案例demo
  15. cocos2d-x csb特效文件显示
  16. 2020年有寓意的领证日期_2020有寓意的领证日期 2020有意义的领证日子 - 中国万年历...
  17. 网页的缩放,适配以及移动的适配!
  18. eas bos客户端获取组织,人员,用户的方法
  19. HTML+JS+CSS+xml快速入门
  20. 随机森林算法学习(RandomForest)

热门文章

  1. C++常用数学运算(待完结)
  2. 最新版本Redis:Redis 7.0 安装使用,Docke启动Redis,Redis使用场景-2022年最新Redis图解安装
  3. python控制手机屏幕亮度的软件_Python脚本利用adb进行手机控制
  4. word审阅功能、查看word文档的好姿势
  5. linux系统(centos)中安装中文输入法(拼音 五笔)
  6. 男生学电视剧中女生的说话方式,果然搞笑
  7. Excel+Python,简直法力无边
  8. 逆元的定义用处以及简单求法
  9. 三星S10的定价脱离现实,或难拯救手机业务
  10. Angular11安装NG-ZORRO步骤及注意点