1 使用表单获取到数据以后,是对象类型的数据如下图

而后台需要返回的数据是这种key:value的形式传入

2   废话不多说直接上代码(代码只截取部分,仅供参考跑不起来,最后又一个小demo可以运行)

 public discountArr = []; // 折扣数组容器
public discountContent = { 'name': '', 'value': '' }; // 折扣转换对象容器
public setDiscount = {}; // 折扣返回数据 ngOnInit() {
// 页面初始化发送请求获取数据折后
this.service.getProductDiscount(this.userId).subscribe(data => {
if (data.code !== 0) {
// TODO 错误处理
console.log(data.message);
} else {
返回成功后把获取到的数据赋值给页面的数据
console.log(data, '折扣');
this._discount.EIP = data.result.EIP;
this._discount.EBS = data.result.EBS;
this._discount.ECS = data.result.ECS;
this._discount.SLB = data.result.SLB;
this._discount.OSS = data.result.OSS;
this._discount.CPS = data.result.CPS;
this._discount.CAAS = data.result.CAAS;
this._discount.VPC = data.result.VPC;
this._discount.SBW = data.result.SBW;
this._discount.RDSMysql = data.result.RDSMysql;
this._discount.CDN = data.result.CDN;
}
});
// 表单获取到的数据
this.discount = this.fb.group({
EIP: [10, [Validators.required]],
EBS: [9, [Validators.required]],
ECS: [null, [Validators.required]],
SLB: [null, [Validators.required]],
OSS: [null, [Validators.required]],
CPS: [null, [Validators.required]],
CAAS: [null, [Validators.required]],
VPC: [null, [Validators.required]],
SBW: [null, [Validators.required]],
RDSMysql: [null, [Validators.required]],
CDN: [null, [Validators.required]],
});
console.log(this.discount.value);
}
// 表单提交执行函数
onSubmit() {
// tslint:disable-next-line:forin
// 循环表单获取的数据
for (const key in this.discount.value) {
// 每次执行行前让新对象为空
this.discountContent = { 'name': '', 'value': '' };
// 如果为空的话
if (!this.discountContent[key]) {
// 把拆分开的数据分别放入key value
this.discountContent.name = key;
this.discountContent.value = this.discount.value[key];
}
// 每次拆分成功插入数组
this.discountArr.push(this.discountContent);
}
// 转换成后台需要的数据格式
this.setDiscount = {
operatorId: this.marketId,
discount: this.discountArr,
};
console.log(this.setDiscount);
// 发送修改记录
this.service.changeProductDiscount(this.userId, this.setDiscount).subscribe(data => {
if (data.code != 0) {
// TODO 错误处理
this.notification.create(`error`, '失败',
data.message);
} else {
this.notification.create(`success`, '成功',
'折扣已修改成功');
}
});
}

3  数据转换 demo 示例 (这个可以跑)

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body> </body>
<script type="text/javascript">
var json = {
"CAAS":10,
"CDN": 10,
"CPS": 10,
"EBS": 10,
"ECS": 10,
"EIP": 10,
"OSS": 10,
"RDSMysql": 10,
"SBW": 10,
"SLB": 10,
"VPC": 10
};
var arr = [];
var json1= {};
for(let key in json){ json1 = {};
if(!json1[key]){
json1.name = key;
json1.value = json[key];
}
arr.push(json1);
}
console.log(arr);
</script>
</html>

angular6实现对象转换数组对象的更多相关文章

  1. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  2. 什么是“类数组对象”,在jquer中怎样将类数组对象转换为数组对象

    类数组对象的定义: 所谓"类数组对象"就是一个常规的Object对象,如$("div")但它和数组对象非常相似:具备length属性, 并以0.1.2.3……等 ...

  3. javascript中的字符串对象和数组对象

    1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...

  4. 微信小程序 - 对象转换成对象数组

    后端传过来的一个个对象 {1,2,3,4},{1,3,5,},{1,3,5} 我们应该转化为数组对象 [{},{},{},{}]  ,最后通过wx:for遍历到页面 示例图:

  5. js中的函数,Date对象,Math对象和数组对象

    函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...

  6. 学习笔记:javascript内置对象:数组对象

    1.数组对象的创建   1.设置一个长度为0的数组  var myarr=new array(); 2.设置一个长度为n的数组  var myarr=new arr(n); 3.声明一个赋值的指定长度 ...

  7. math对象与数组对象

    1.math对象 属性 //PI    圆周率 方法 //random    随机数 var num= Math.random();    生成0到1的随机数//round 四舍五入var num2 ...

  8. js json对象和数组对象

    动态添加json对象: var json = {}; json['a'] = 'a'; 动态添加数组对象: var arr = []; arr['a'] = 'a';

  9. JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的

    Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个"下标",用来表示它在数组中的位置,是从零开始的 数组定义的方法: 1. 定 ...

随机推荐

  1. freemarker导出word档

    1.word另存为xml:2.xml文件后缀名改成ftl:3.编写完整json字符串备用:4.修改ftl中动态字段为json中对应字段名:5.编写java代码自动生成word文件:(注意:换行用< ...

  2. springboot秒杀课程学习整理1-6

    1)活动模型设计 配饰秒杀的模型(promoModel)id promoName startDate(建议使用joda-time) endDate itemId promoItemPrice 数据库( ...

  3. AI 帮助涂鸦

    这个小工具挺有意思,可以在涂鸦的同时自动猜测你要画什么,并自动完成. https://quickdraw.withgoogle.com/

  4. 配置合适的Visual Studio 2017 开发环境(其它版本的也适用)

    1.VS 安装完成后,可以重新配置合适的开发环境 第一步: 第二步: 第三步: 第四步:选择合适自己的开发环境 这里我选择常规,具体的可以看窗口右边的说明

  5. JAVAEE 第七周

    JSON语法: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集 ...

  6. Centos7搭建docker仓库

    一:安装启动registry 1.1:环境准备 yum install -y python-devel libevent-devel python-pip gcc xz-devel pip insta ...

  7. unity3d 数据加/解密

    [/font]using System.Collections; using System.Text; using System.Security.Cryptography; using System ...

  8. GBDT的数学原理

    一.GBDT的原理 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树 ...

  9. oracle 语句导出 导入一张表语句

    导出: exp system/midsoft@bafy0929 file=d:\dzbl_models_temp.dmp tables=(emr.dzbl_models_temp) ; 导入:imp ...

  10. centos 6.5 安装 tomcat8 及性能优化_虚拟主机

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomcat和Nginx.Apa ...