js之对象处理
数据拼接一:
原始数据为对象
{
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之对象处理的更多相关文章
- js定义对象的几种容易犯的错误
//js定义对象的几种容易犯的错误function Person() { getName = function (){ console.info(1); }; return this;}//Perso ...
- 模仿console自写函数打印js的对象
本以为写个递归函数就可以将js的对象打印出来. 当然第一个想到的估计是JSON.stringify() 这个函数.但这个函数打印到浏览器 显示效果不友好.最友好的显示肯定是 控制台打印咯. 结果尝试打 ...
- js自定义对象
一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...
- Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换
Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...
- js中对象使用
简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一个含有两个属性的对象,x.y var o2={x:12,y:'12',name:'JS'}; ...
- JavaScript学习06 JS事件对象
JavaScript学习06 JS事件对象 事件对象:当事件发生时,浏览器自动建立该对象,并包含该事件的类型.鼠标坐标等. 事件对象的属性:格式:event.属性. 一些说明: event代表事件的状 ...
- [转]JS中对象与字符串的互相转换
原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...
- JS中对象与字符串的互相转换
在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...
- JS面相对象
一.理解对象: //第一种:基于Object对象 var person = new Object(); person.name = 'My Name'; person.age = ; person.g ...
- 关于js一般对象与标配对象
当一个js函数对象被创建时,Function 构造器产生的函数对象会运行类似这样的一些代码 this.prototype={constructor:this} 新函数被赋予了一个prototype属性 ...
随机推荐
- Mybatis二级缓存(1)
- QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection(QueryDet:用于加速高分辨率小目标检测的级联稀疏查询)
QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection(QueryDet:用于加 ...
- 学习-Vue3-绑定内联样式
<template> <div> <!-- 绑定内联样式--绑定对象 --> <!-- <div :style="{color: active ...
- Kotlin源码分析 - 元编程(使用自身语言编写生成自身代码)
Kotlin源码分析 Kotlin模块FIR分析发现,在生成fir tree的时候,kotlin使用了元编程的技术,以前看到这个技术还是在JastAdd上,使用jastadd语法去写代码,生成Java ...
- restful的10个规范、序列化和反序列化的名词解释
# 概念 REST全称是Representational State Transfer,中文意思是表述:表征性状态转移. RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应 ...
- 使用myBadboy(python自主开发工具)启动谷歌浏览器并自动录制jmeter脚本
一.源代码下载 https://gitee.com/rmtic/mybadboy 说明:因现有的录制方法有不能定制等不足之处,所以自力更生,自动生成对应jmeter脚本,减少维护成本 二.操作说明 1 ...
- Pods与Nodes
Pod是Kubernetes抽象出来表示一组应用容器(比如Docker.rkt),还有这些容器共享的资源.这些资源包括: 共享存储,比如Volumes 网络,比如独立的集群IP地址 如何去运行每个容器 ...
- STM32F0 LL库IIC第二地址配置错误
最近在做F0项目要用到多个IIC地址,使用Cube生成的LL库,第二地址进不了中断 F0版本:1.11.0 STM32CubeX生成的LL库代码为: 1 static void MX_I2C1_Ini ...
- ubuntu无法进入图形界面可以进入终端
ubuntu开机后无法进入图形界面解决办法: 进入命令行模式,执行下面的命令: rm /etc/X11/xorg.conf cp /etc/X11/xorg.conf.failsafe /etc ...
- C++ primer笔记 -基本语言
C++最重要的特征是类,程序员可以使用类自定义数据类型,C++有时候将这些类型称为"类类型",以区别于内置类型. 类型作用: 1.告诉我们数据代表的是什么意思 2.对数据可以执行哪 ...