数组的filter过滤方法将对象数组内容改变——js基础积累——犯傻记录
最近在写后台管理系统,遇到一个多种类型报价的功能,内容不难,但是需要各种判断加处理。有时候就会不小心出现犯傻的情况。。。
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基础积累——犯傻记录相关推荐
- js中数组filter过滤奇偶数_js--数组的filter()过滤方法的使用
前言 你还在通过for循环遍历数组吗?你还在遍历之后一项一项的通过if判断过滤你需要的数据吗?你还在写着一大堆代码实现一个简单的过滤数据功能吗?那么,今天他来了.他就是这里要介绍的es6中数组filt ...
- Silverlight调用的JS方法返回对象数组的处理方法
最近在做Silverlight应用,需要用Silverlight调用页面中Javascript方法.这个JS方法返回一个对象数组给Silverlight.对于这个对象数组怎么在Silverlight里 ...
- 数组的存储与初始化、对象数组、数组作为函数参数
数组的存储 数组在内存中是一组连续的内存单元,也就是说数组元素是连续存储的.数组名是数组所占内存的首地址. 一维数组是按照下标的顺序存储的,而对多维数组就复杂些,以一定的约定顺序将多维数组存储在连续的 ...
- filter() 过滤方法
//filter() 过滤方法 var a = [1,2,3,4,2,4,5,2,1,4,5,5,7].filter(function(item,index){return item >3}); ...
- js中Array.prototype.find() 方法在对象数组上无效果,捉急。。。
我在使用Array.prototype.find() 方法时,发现在对象数组上没有正确返回,过程如下: roleResourceList是个对象数组: 里面的数据是这样的: 调用find()方法: d ...
- php返回json数组元素,php生成返回json对象数组(json支持中文)
php生成返回json对象数组 注意两种方法生成的对象数组在结构上的区别 $jarr=array( 'total' => 239, 'list' => array( array( 'cod ...
- javascript数组之数组排序:数组按照字符顺序排序,反转数组,数字排序,比值函数,随机排序,查找最大最小数组值,自制找数组最高最低值办法,排序对象数组
1.数组排序 sort() sort() 方法以字母顺序对数组进行排序 var fruits = ["Banana", "Orange", "Appl ...
- 对象数组转成字符串数组 java_如何在Java中将对象数组转换为字符串数组
如何在Java中将对象数组转换为字符串数组 我使用以下代码将Object数组转换为String数组: Object Object_Array[]=new Object[100]; // ... get ...
- php遍历数组的四种方法,PHP遍历数组的常见几种方法
小白发博文,看到某个知识点,就当复习下. $arr=array ( 'football' => 'well', 'swimming'=>'very well', 'run'=> ...
最新文章
- javaweb项目中的过滤器的使用
- sql:MySQL 6.7 表,视图,存储过程结构查询
- C 语言 边读 边写入文件
- 数字化转型方法论_50+企业数字化转型、管理的方法论,这本书到底有什么干货?...
- 在使用刚体时的几个注意点和参数
- 容器与微服务持续交付
- 10个最常见的 HTML5 面试题及答案
- Galaxy S III 新广告大片:All Share功能 完败iPhone!
- 步进电机弯道加速度、起跳速度、单轴加速度设置方法
- 银行卡四要素API 方便好用
- 记录docker镜像中证书验证失败导致更新不成功
- 用项目管理思维做一个活动策划
- 关于cpu-z,everest,IntelCoreSeries的一些认识
- 华为p10和p10plus区别_华为p10和p10plus的区别 华为p10plus和华为p10对比评测
- JavaWeb学习-案例练习-图书管理前台-9-分页功能实现
- leetcode 825. Friends Of Appropriate Ages
- Unity导入资源解决报错
- Facebook投手的多账号管理软件-VMLogin中文版防关联浏览器-安全高效管理每个Facebook帐号
- Cron Expressions——Cron 表达式
- spring思维导图