数据拼接一:

原始数据为对象

{
0grade: ""
  0home: "萍钢四切(边部钩痕)"
  0price: "3200"
  0productName: "普板"
  0remark: ""
  1grade: ""
  1home: "萍钢四切(边部钩痕)"
  1price: "3201"
  1productName: "普板"
  1remark: ""
3grade: ""
  3home: "萍钢四切(边部钩痕)"
  3price: "3201"
  3productName: "普板"
  3remark: ""
}

要求数据为数组

[
{
grade: "",
home:"萍钢四切(边部钩痕)",
price: "3021",
productName: "普板",
remark: "",
},{
grade: "",
home:"萍钢四切(边部钩痕)",
price: "3021",
productName: "普板",
remark: "",
},
{
grade: "",
home:"萍钢四切(边部钩痕)",
price: "3021",
productName: "普板",
remark: "",
}
]

解决方案一:

getTableArry (data) {
  let arry = [];
  let obj = {};
for(let key in data) {
    let curKey = parseInt(key.replace(/[^0-9]+/g, '')); // 获取key里的数字标记
    let keyName =key.replace(/[^a-zA-Z]+/g, ''); // 获取 key里的字段名称
    if(!isNaN(curKey)){// 过滤掉不包含数字标记的
    obj = {
    'productName':data[`${curKey}productName`],
    'spec':data[`${curKey}spec`],
    'grade':data[`${curKey}grade`],
    'home':data[`${curKey}home`],
    'weight':data[`${curKey}weight`],
    'warehouse':data[`${curKey}warehouse`],
    'price':data[`${curKey}price`],
    'remark':data[`${curKey}remark`],
    }
    if(`${curKey}` in arry) {// 过滤掉已经追加到arry的obj     }else {
      arry.push(obj)
    }
   }   }
return arry;
}

解决方案二:

ps: obj 对象拷贝,需放在里面,每次重新初始化

  getTableArry (data, o) {
  let arry = []; for(let key in data) {
    let curKey = parseInt(key.replace(/[^0-9]+/g, '')); // 获取key里的数字标记
    let keyName =key.replace(/[^a-zA-Z]+/g, ''); // 获取 key里的字段名称
    if(!isNaN(curKey)){// 过滤掉不包含数字标记的
    if(`${curKey}` in arry) {// 过滤掉已经追加到arry的obj     }else {
   let obj = {};
for (let i in o){
obj[i] = data[`${curKey}${i}`]
}
     arry.push(obj)  
    }
   }   }
return arry;
}

js之对象处理的更多相关文章

  1. js定义对象的几种容易犯的错误

    //js定义对象的几种容易犯的错误function Person() { getName = function (){ console.info(1); }; return this;}//Perso ...

  2. 模仿console自写函数打印js的对象

    本以为写个递归函数就可以将js的对象打印出来. 当然第一个想到的估计是JSON.stringify() 这个函数.但这个函数打印到浏览器 显示效果不友好.最友好的显示肯定是 控制台打印咯. 结果尝试打 ...

  3. js自定义对象

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...

  4. Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换

    Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...

  5. js中对象使用

    简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一个含有两个属性的对象,x.y var o2={x:12,y:'12',name:'JS'}; ...

  6. JavaScript学习06 JS事件对象

    JavaScript学习06 JS事件对象 事件对象:当事件发生时,浏览器自动建立该对象,并包含该事件的类型.鼠标坐标等. 事件对象的属性:格式:event.属性. 一些说明: event代表事件的状 ...

  7. [转]JS中对象与字符串的互相转换

    原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...

  8. JS中对象与字符串的互相转换

    在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...

  9. JS面相对象

    一.理解对象: //第一种:基于Object对象 var person = new Object(); person.name = 'My Name'; person.age = ; person.g ...

  10. 关于js一般对象与标配对象

    当一个js函数对象被创建时,Function 构造器产生的函数对象会运行类似这样的一些代码 this.prototype={constructor:this} 新函数被赋予了一个prototype属性 ...

随机推荐

  1. 内存模型--共享、JMM

    Balking 指令重排

  2. AWT+Swing区别

    AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口.AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关 ...

  3. uni-app 声音/震动提示,播放系统默认消息声音 安卓(Android)测试通过

    可以跟据自己需求使用,有不足的地方希望大家帮忙补充 参数 type Options vibrate:震动 othre:铃声 1 msg_remind(type) 2 { 3 if(type=='vib ...

  4. Nuget管理器下载插件出现依赖性相关无法正确下载

    话不多说,直接上图: 上面我采用的是PM控制台下载EntityFrameWork最新版本,之所以要这样做,是因为利用Nuget管理器好像不咋管用呀,一直说这个依赖那个依赖啥的,还不如最底层 用命令控制 ...

  5. macos下编译glfw

    环境准备 # macos 环境配置,需要预装xcode和cmake brew install cmake # 下载源码 git clone https://github.com/glfw/glfw.g ...

  6. 《Spring Boot从零开始学(视频教学版)》快速入门Spring Boot应用开发

    #好书推荐##好书奇遇季#<Spring Boot从零开始学(视频教学版)>,目前为止较好的一本Spring Boot入门书.京东当当天猫都有发售.本书配套示例代码.课件与教学视频.定价7 ...

  7. SignalR 的应用

    一.应用场景: 在项目中有一个地方需要定时查询数据库是否有数据,如果有则显示在界面上. 二.可以使用ajax定时查询来做: var inter = window.setInterval(refresh ...

  8. 微信小程序授权及检测访问当前页面需要去登录的操作

    1.小程序授权登录 这里我直接复制代码: login.js const app = getApp() Page({ data: { //判断小程序的API,回调,参数,组件等是否在当前版本可用. ca ...

  9. SpringBoot配置双数据源

    SpringBoot配置双数据源 一.搭建springboot项目 二.添加依赖 <dependencies> <!--web服务--> <dependency> ...

  10. Django中关于Manager的使用

    首先介绍一下 manager 的使用场景,比如我们有一些表级别的,需要重复使用的功能,都可以使用 manager 来实现. 比如我们在前面的笔记中介绍的 model 的 create().update ...