数组类型:

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 数组对象的某一项抽离出来放在外面的更多相关文章

  1. 判断js数组/对象是否为空

    /** * 判断js数组/对象是否为空 * isPrototypeOf() 验证一个对象是否存在于另一个对象的原型链上.即判断 Object 是否存在于 $obj 的原型链上.js中一切皆对象,也就是 ...

  2. JS 数组对象

    定义数组: 数组对象用来在单独的变量名中存储一系列的值. 创建一个数组有三种方法. 1: 常规方式: var myCars=new Array(); myCars[0]="Saab" ...

  3. 【原】js数组对象去重最简单的方法

    简单的数组去重是比较简单的,方法也特别多,如给下面的数组去重: let arr = [1,2,2,4,9,6,7,5,2,3,5,6,5] 最常用的可以用for循环套for循环,再用splice删除重 ...

  4. js 数组对象的操作方法

    在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...

  5. JS数组&对象遍历

    遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...

  6. js数组对象排序详解

    一.js对象遍历输出的时候真的是按照顺序输出吗? 下边就来实践一下: var obj={'3':'ccc',name:'abc',age:23,school:'sdfds',class:'dfd',h ...

  7. js数组对象常用方法小结

    ~~~数组添加元素后一般返回数组的新长度 如: push(ele1[,ele2...]), unshift(ele1[,ele2...]) ~~~数组删除元素后一般返回被删除的元素 如: pop() ...

  8. Js 数组对象排序

    1.定义函数 /** * 数组对象排序函数 * @param {any} name 排序字段 * @param {any} order 升.降(这里事true.false记得处理下) */ var b ...

  9. js数组对象去重

    转: https://www.cnblogs.com/gaoht/p/9850449.html 在数组对象中去掉重复的对象: export function deteleObject(obj) { v ...

随机推荐

  1. mysql学习之基础篇02

    我们来说一下表的增删改查的基本语法: 首先建立一个简单的薪资表: create table salary(id int primary key auto_increment,sname varchar ...

  2. Spark 用Scala和Java分别实现wordcount

    Scala import org.apache.spark.{SparkConf, SparkContext} object wordcount { def main(args: Array[Stri ...

  3. STL用法之set

    [C++::STL]之set的用法 c++ set求差集,并集,交集

  4. MINST样例数据的神经网络学习

    标准的入门学习示例, 比一年前看的那书,更有感觉了. # coding: utf-8 try: import urllib.request except ImportError: raise Impo ...

  5. selenium常用的API(一)截屏

    我们在使用selenium测试过程中,可使用截屏功能将用例执行失败的画面截图保存,方便测试执行结束后查看并定位问题. 以下介绍两种截屏方法: 对当前浏览器窗口截屏 使用selenium自带的get_s ...

  6. 《3+1团队》【Beta】Scrum meeting 2

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...

  7. Python正则提取数据单引号内数据,并判断是否是空列表(是否提取到数据)

    #coding=utf- import re string1="asdfgh'355'dfsfas" string2="fafafasfasdfasdf" pa ...

  8. 2019-2020-1 20199301《Linux内核原理与分析》第五周作业

    第四章·系统调用的三层机制(上) 本章的重点在于用户态程序如何触发系统调用? 一.用户.内核.中断 IntelX86有四种不同的执行级别.Linux操作系统中只采用了其中的0和3两个特权级别,分别对应 ...

  9. 解决Antimalware Service Executable CPU占用高的问题

    windows8/8.1,WIN10自带的安全软件Windows defender还不错,基本可以不用装其他杀毒软件了. 但是其进程Antimalware Service Executable 出现C ...

  10. PHP——最新号码归属地数据库

    前言 最近在忙的一个项目,为了数据安全,不能够使用任何第三方的接口~ 号码库 | https://github.com/wangyang0210/Phone-Number-Range 代码 其实就是一 ...