最近在写后台管理系统,遇到一个多种类型报价的功能,内容不难,但是需要各种判断加处理。有时候就会不小心出现犯傻的情况。。。

1.场景

需要在一个对象数组中过滤出符合条件的对象。

let arr = [{id:7,code:'ZP001',selectCode:'ABCD'
},{id:8,code:'ZP002',selectCode:'EFGH'
}]

从上面的数组中查找出code='ZP002'的内容。

办法很简单:就是通过数组的filter过滤方法

let obj = arr.filter(item=>item.code=='ZP002')[0];

此时的obj就是符合条件的对象了。

但是我这边发现,使用过滤方法后,数组中的每一项的code都变成了ZP002,这就导致最后我拿到的obj永远是数组的第一项,出现了错误。

2.出现问题:过滤方法后,数组中的每一项的code都一样了

此时的arr打印出来是[{ id:7, code:'ZP002', selectCode:'ABCD' },{ id:8, code:'ZP002', selectCode:'EFGH' }]

3.发现问题

数组的fiiter过滤方法是不会改变原数组的,但是目前出现了原数组改变的情况,百度后发现,也有人跟我遇到同样的问题:


我这边是属于第二种情况:

我实际写的过滤代码如下:

let obj = arr.filter(item=>item.code='ZP002')[0];

少写了一个=,。。。。

深浅拷贝的问题也有可能导致这种情况的发生。所以一定要注意。

完成!!!

数组的filter过滤方法将对象数组内容改变——js基础积累——犯傻记录相关推荐

  1. js中数组filter过滤奇偶数_js--数组的filter()过滤方法的使用

    前言 你还在通过for循环遍历数组吗?你还在遍历之后一项一项的通过if判断过滤你需要的数据吗?你还在写着一大堆代码实现一个简单的过滤数据功能吗?那么,今天他来了.他就是这里要介绍的es6中数组filt ...

  2. Silverlight调用的JS方法返回对象数组的处理方法

    最近在做Silverlight应用,需要用Silverlight调用页面中Javascript方法.这个JS方法返回一个对象数组给Silverlight.对于这个对象数组怎么在Silverlight里 ...

  3. 数组的存储与初始化、对象数组、数组作为函数参数

    数组的存储 数组在内存中是一组连续的内存单元,也就是说数组元素是连续存储的.数组名是数组所占内存的首地址. 一维数组是按照下标的顺序存储的,而对多维数组就复杂些,以一定的约定顺序将多维数组存储在连续的 ...

  4. filter() 过滤方法

    //filter() 过滤方法 var a = [1,2,3,4,2,4,5,2,1,4,5,5,7].filter(function(item,index){return item >3}); ...

  5. js中Array.prototype.find() 方法在对象数组上无效果,捉急。。。

    我在使用Array.prototype.find() 方法时,发现在对象数组上没有正确返回,过程如下: roleResourceList是个对象数组: 里面的数据是这样的: 调用find()方法: d ...

  6. php返回json数组元素,php生成返回json对象数组(json支持中文)

    php生成返回json对象数组 注意两种方法生成的对象数组在结构上的区别 $jarr=array( 'total' => 239, 'list' => array( array( 'cod ...

  7. javascript数组之数组排序:数组按照字符顺序排序,反转数组,数字排序,比值函数,随机排序,查找最大最小数组值,自制找数组最高最低值办法,排序对象数组

    1.数组排序 sort() sort() 方法以字母顺序对数组进行排序 var fruits = ["Banana", "Orange", "Appl ...

  8. 对象数组转成字符串数组 java_如何在Java中将对象数组转换为字符串数组

    如何在Java中将对象数组转换为字符串数组 我使用以下代码将Object数组转换为String数组: Object Object_Array[]=new Object[100]; // ... get ...

  9. php遍历数组的四种方法,PHP遍历数组的常见几种方法

    小白发博文,看到某个知识点,就当复习下. $arr=array ( 'football' =>     'well', 'swimming'=>'very well', 'run'=> ...

最新文章

  1. javaweb项目中的过滤器的使用
  2. sql:MySQL 6.7 表,视图,存储过程结构查询
  3. C 语言 边读 边写入文件
  4. 数字化转型方法论_50+企业数字化转型、管理的方法论,这本书到底有什么干货?...
  5. 在使用刚体时的几个注意点和参数
  6. 容器与微服务持续交付
  7. 10个最常见的 HTML5 面试题及答案
  8. Galaxy S III 新广告大片:All Share功能 完败iPhone!
  9. 步进电机弯道加速度、起跳速度、单轴加速度设置方法
  10. 银行卡四要素API 方便好用
  11. 记录docker镜像中证书验证失败导致更新不成功
  12. 用项目管理思维做一个活动策划
  13. 关于cpu-z,everest,IntelCoreSeries的一些认识
  14. 华为p10和p10plus区别_华为p10和p10plus的区别 华为p10plus和华为p10对比评测
  15. JavaWeb学习-案例练习-图书管理前台-9-分页功能实现
  16. leetcode 825. Friends Of Appropriate Ages
  17. Unity导入资源解决报错
  18. Facebook投手的多账号管理软件-VMLogin中文版防关联浏览器-安全高效管理每个Facebook帐号
  19. Cron Expressions——Cron 表达式
  20. spring思维导图

热门文章

  1. 大数据学习心得--hadoop框架
  2. [Java] 计蒜客---蒜头君的玩具
  3. php 微信相亲截图,跟相亲对象的尬聊截图,笑死了哈哈哈哈哈哈哈哈哈哈哈哈...
  4. python实现三种以上判断条件_Python条件判断(if)
  5. (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  6. Mysql查看执行计划
  7. 在Centos7下使用reportlab输出中文到pdf文档
  8. java中Long型和long型的比较大小
  9. 新手入门WPF之DataGrid控件(一)
  10. Qt——功能:序列帧动画