在业务中,经常会遇到使用同个方法调用多个同类型接口,以下简单模拟两个API接口

 // api-1
{
code: 0,
status: 200,
title: 'web前端框架',
list: [
{id: 1, name: 'React'},
{id: 2, name: 'Vue'},
{id: 3, name: 'Angular'}
]
} // api-2 {
code: 0,
status: 200,
title: '后端框架',
list: [
{id: 4, name: 'Laravel'},
{id: 5, name: 'Django'},
{id: 6, name: 'Flask'}
]
}

前端请求

1. 声明接收数据的空对象

 let front_end = {}
let back_end = {}

2. 使用ajax或则相关插件(axios, fetch等)请求API数据, 这里略过直接拿到数据分别赋值给response1, response2

  其实这里相当于实际项目中 ,请求api接口得到的res返回数据

 let respone1 = {
code: 0,
status: 200,
title: 'web前端框架',
list: [
{ id: 1, name: 'React' },
{ id: 2, name: 'Vue' },
{ id: 3, name: 'Angular' }
]
} let respone2 = {
code: 0,
status: 200,
title: '后端框架',
list: [
{ id: 4, name: 'Laravel' },
{ id: 5, name: 'Django' },
{ id: 6, name: 'Flask' }
]
}

3.  创建处理数据方法

function getList(res, key) {
let temp= {} // 声明一个临时对象
temp[key] = res.list // 将返回的数据赋值给对象的属性key
console.log(temp)
}

4. 调用方法

 getList(respone1, 'front_end')
getList(respone2, 'back_end')

得到的结果如下

到此,就可以使用front_end和back_end对象分别填充模板页面 了。

总结:

1. 这里使用javascript对象的动态属性, 绑定到指定的对象,

2. 避免了同类型接口需要多个处理方法。

3. 上述key值,必须和初始化的对象名相同,否则不能直接使用对象

js对象添加动态属性的更多相关文章

  1. 一道面试题关于js中添加动态属性

    js中数据类型包含基本数据类型和引用类型,基本类型包括:string.null.undefined.number.boolean.引用类型即是对象比如:array  .function以及自定义对象等 ...

  2. JS对象添加新的字段

    var test={name:"name",age:"12"}; test.id = "12345"; 直接定义添加就成了

  3. 向JS对象添加和删除事件

    this.removeEventListener = function (obj, ename, func) { var store = obj[this.addEventListener.pre + ...

  4. Js 对象添加属性

    var arr = new Array(); arr[0] = jQuery("#data1").val(); var obj = {}; obj.y='abc'; arr.pus ...

  5. 关于js对象添加属性

    字符串类型的(注意要加引号): var obj={}; for(var i=0;i<10;i++){ eval("obj.key"+i+"='"+&quo ...

  6. js对象中动态读取属性值 动态属性值 js正则表达式全局替换

    $(document).ready(function(){ var exceptionMsg = '${exception.message }'; var exceptionstr = ''; //j ...

  7. js中 给json对象添加属性和json数组添加元素

    js中 给json对象添加新的属性 比如现在有一个json对象为jsonObj,需要给这个对象添加新的属性newParam,同时给newParam赋值为pre.做法如下: var obj={ &quo ...

  8. js 为对象添加和删除属性

    对于一个普通的js对象: var obj = { name:"mary", age:21 } 如果我们要对它添加新属性的话可以使用下列方式: obj.address = " ...

  9. 在js中为对象添加和删除属性

    对于一个普通的js对象: var obj = { name:"mary", age:21 } 如果我们要对它添加新属性的话可以使用下列方式: obj.address = " ...

随机推荐

  1. C++实现景区信息管理系统

    景区信息管理系统 实现了: 1.1 建立主程序应用菜单选项 主程序应用菜单选项包含所实现的所有功能,并且对选项采用数字标识进行选择,对其他错误输入可以进行判别,提示输入错误. 1.2 导游线路图的创建 ...

  2. Mysql数据按天分区,定期删除

    需求: 1.日志表需要按天分区 2.只保留一个月数据 方案: 1.创建两个事件,一个事件生成未来需要的分区,另一个事件定期检查过期数据(移除分区) 2.创建事件每小时执行一次,删除事件每天执行一次 3 ...

  3. Vue:在vue-cli中使用Bootstrap

    一.安装jQuery Bootstrap需要依赖jQuery,所以引用Bootstrap之前要先引用jQuery,使用下面的命令引用jQuery: npm install jquery --save ...

  4. python3命令行ImportError: No module named 'xxxx'的问题

    主要原因:启动脚本不在当前目录下,无法找到上一层 在pycharm写好的脚本程序,在命令行无法运行,报错 Traceback (most recent call last): File "t ...

  5. OpenGL step by step 38 : Skeletal Animation with Assimp

    一般骨架模型由两部分组成: Rigging(bone):相当于骨架,可以用来控制模型的动作 Mesh(skin):相当于表面皮肤 骨架模型一般是层级结构的,比如上面 背骨是root,他的孩子包括胳膊. ...

  6. vim不支持鼠标中键拷贝粘贴

    ubuntu 和mint默认安装的vim是不支持系统剪切.粘贴版的,需要执行以下安装:sudo apt-get install vim-gnome

  7. 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》

    学习作业2: 问题1:主键都有哪些方式?   问题2:本次实战案例建立的主键采用哪种方式?   问题3:猜猜金蝶K3WISE建立的主键采用哪种方式?   问题4:谈谈手工主键增长设置具体实现思路?(选 ...

  8. Sublime Text 3 3143 注册码和遇到的PyV8无法下载问题

    packagecontrol官网:https://packagecontrol.io/installation sublime安装之后,安装Package Control管理插件. sublime3 ...

  9. Nginx、haproxy反向代理设置

    Nginx反向代理配置: #user nobody; worker_processes ; events { worker_connections ; } http { include mime.ty ...

  10. docker参数注解

    # docker --help Usage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h ...