JS 数组对象的某一项抽离出来放在外面
数组类型:
shamDeviceData: [
{
"projectKey":"5555",
"productKey":"55555555",
"deviceId":"555555555",
"deviceName":"55555555",
"imei":"5555555",
"devReturnAlarmList":[{
"statusCode":"55555",
"statusValue":"5555",
"alarmDesc":"5555",
"alarmType": '1'
}]
},
{
"projectKey":"6666666",
"productKey":"6666",
"deviceId":"6666",
"deviceName":"helo",
"imei":"how are you",
"devReturnAlarmList":[
{
"statusCode":"6666",
"statusValue":"6666",
"alarmDesc":"8888888",
"alarmType": '1'
},
{
"statusCode":"67677677",
"statusValue":"676767",
"alarmDesc":"99999",
"alarmType": '1'
},
{
"statusCode":"67677677",
"statusValue":"676767",
"alarmDesc":"tttttttt",
"alarmType": '1'
}
]
},
{
"projectKey":"777777",
"productKey":"777777",
"deviceId":"77777",
"deviceName":"77777",
"imei":"77777",
"devReturnAlarmList":[]
}
],
思路:
1. 把 devReturnAlarmList 数组里面的每一项拿到外面来,重新生成一个新数组,如果devReturnAlarmList有多项,则生成多个数组
2. 合并新对象 { }一定要写
Object.assign({},item, item.devReturnAlarmList[num])
解决:
this.shamDeviceData.forEach((item,i) => {
if (item.devReturnAlarmList.length) {
if (item.devReturnAlarmList.length) {
for (let i = 0; i < item.devReturnAlarmList.length; i++) {
(function(num) {
_this.handleShamDeviceData.push(Object.assign({},item, item.devReturnAlarmList[num])) // 这里一定要注意,拼接成新对象{},不然item.devReturnAlarmList[num]始终取的是最后一个值,闭包没生效
})(i)
}
}
} else {
this.handleShamDeviceData.push(item)
}
})
console.log(this.handleShamDeviceData)
打印的 handleShamDeviceData 如下:


JS 数组对象的某一项抽离出来放在外面的更多相关文章
- 判断js数组/对象是否为空
/** * 判断js数组/对象是否为空 * isPrototypeOf() 验证一个对象是否存在于另一个对象的原型链上.即判断 Object 是否存在于 $obj 的原型链上.js中一切皆对象,也就是 ...
- JS 数组对象
定义数组: 数组对象用来在单独的变量名中存储一系列的值. 创建一个数组有三种方法. 1: 常规方式: var myCars=new Array(); myCars[0]="Saab" ...
- 【原】js数组对象去重最简单的方法
简单的数组去重是比较简单的,方法也特别多,如给下面的数组去重: let arr = [1,2,2,4,9,6,7,5,2,3,5,6,5] 最常用的可以用for循环套for循环,再用splice删除重 ...
- js 数组对象的操作方法
在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...
- JS数组&对象遍历
遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...
- js数组对象排序详解
一.js对象遍历输出的时候真的是按照顺序输出吗? 下边就来实践一下: var obj={'3':'ccc',name:'abc',age:23,school:'sdfds',class:'dfd',h ...
- js数组对象常用方法小结
~~~数组添加元素后一般返回数组的新长度 如: push(ele1[,ele2...]), unshift(ele1[,ele2...]) ~~~数组删除元素后一般返回被删除的元素 如: pop() ...
- Js 数组对象排序
1.定义函数 /** * 数组对象排序函数 * @param {any} name 排序字段 * @param {any} order 升.降(这里事true.false记得处理下) */ var b ...
- js数组对象去重
转: https://www.cnblogs.com/gaoht/p/9850449.html 在数组对象中去掉重复的对象: export function deteleObject(obj) { v ...
随机推荐
- php实现人员权限管理(管理员界面)
控制人员权限用的最多的应该是OA办公自动化系统和像ERP,CRM,CMS这样的管理系统,就是通过控制用户的权限来控制其拥有的角色和功能,比如管理员可以拥有所有权限和功能,前台只能拥有登记和通报信息等. ...
- openwrt使用3G拔号的实践笔记
参照文档: https://soha.moe/post/make-4g-wifi-ap-with-openwrt.html 步骤: 1.安装必要的包: opkg update opkg install ...
- http://www.easytest.xyz/login_action/
http://www.easytest.xyz/login_action/一个挺牛逼的系统,有空学习下 https://www.cnblogs.com/1fengchen1/archive/2019/ ...
- python中while循环的基本使用
一.while循环 while 条件: 如果条件为True,会一直循环 代码块(循环体) else: 当上面的条件为假.才会执行 执行顺序:判断条件是否为真.如果真,执行循环 ...
- Redis与Python的交互
驱动模块 redis模块用来在Python环境下驱动Redis数据库 可以直接用pip方式安装 pip install redis 或者国内镜像下载: pip install -i https://p ...
- machine learning (7)---normal equation相对于gradient descent而言求解linear regression问题的另一种方式
Normal equation: 一种用来linear regression问题的求解Θ的方法,另一种可以是gradient descent 仅适用于linear regression问题的求解,对其 ...
- Intellij IDEA – How to build project automatically
By default, Intellij IDEA doesn’t compile classes automatically. But, you can enable the auto compil ...
- 指数基金介绍专栏(8):国企指数(H股指数)详细介绍,最新资料解析,看这一篇就够了
作者:牛大 | 公众号:定投五分钟 大家好,我是牛大.每天五分钟,投资你自己:坚持基金定投,终会财富自由! 昨天牛大给大家介绍了恒生指数,没看的朋友可以去公众号看一下. 指数基金介绍专栏(7):恒生指 ...
- ajax跨域-CORS
CORS:跨域资源共享,是一种跨域访问的W3C标准,它允许浏览器可以跨源服务器进行请求,可以让ajax实现跨域访问.出现跨域问题的原因是浏览器同源策略导致的,协议+域名+端口三者一致被认为是同源.网站 ...
- cocoapods安装错误的原因
gem 可以理解为管理RUBY库和程序包的查找,安装,升级和卸载是个非常好用的工具. gem install cocoapods过程中出现错误的问题.1.gem的源设置错误应该参照,下面来执行gem ...