在业务中,经常会遇到使用同个方法调用多个同类型接口,以下简单模拟两个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. 系统编码,文件编码,python编码

    系统编码,可以通过locale命令查看(LINUX)https://wiki.archlinux.org/index.php/Locale_(简体中文), centos7 配置文件在/etc/prof ...

  2. Java线程生命周期

    当你需要使用Java线程在多线程环境下进行编程时,理解Java的线程周期与线程的状态是非常重要的.通过实现Runnale接口或者继承Thread类,我们可以创建线程,为了启动一个线程,我们需要创建一个 ...

  3. python学习笔记(五)

    面向对象方法 元组的二义性:不明确参数代表的含义 circle=(2,4,6) def distance_from_origin(x,y): return "返回x,y坐标" de ...

  4. makefile 常用函数

    Linux下编译c/c++源码需要编写makefile文件,文章参看 http://blog.sina.com.cn/s/blog_4c4d6e74010009jr.html 一函数的调用语法 二字符 ...

  5. vue+node+mongodb前后端分离博客系统

    感悟 历时两个多月,终于利用工作之余完成了这个项目的1.0版本,为什么要写这个项目?其实基于vuejs+nodejs构建的开源博客系统有很多,但是大多数不支持服务端渲染,也不支持动态标题,只是做到了前 ...

  6. vue 使用font-awesome

    1.npm 安装font-awesome 以及需要的所有依赖 npm i --save @fortawesome/fontawesome-svg-core npm i --save @fortawes ...

  7. 【Py-Github】根据条件筛选Github repo的例子

    条件: language:python commits:>100 contributors:>2 stars:>5 fork:0 实现: from github import Git ...

  8. linux/nginx命令

    1.ps查看服务器所有的进程: -aux 显示所有状态 -ef 简洁信息 ps -aux | grep node 第二列是pid,杀掉程序使用kill. ps -ef | grep node 第一列是 ...

  9. 对unicode数据进行部分replace

    unicode = u'\u9879\u76ee\u7ba1\u7406\u90e8' print unicode #项目管理部 unicode = unicode.replace("项目& ...

  10. Solve Error: 'NSInvalidArgumentException', reason: '-[UITableView mas_makeConstraints:]: unrecognized selector sent to instance 0x7fa5c402fa00'

    下面是iOS开发用第三方库可能出现的错误,及其解决方法: 1. 'NSInvalidArgumentException', reason: '-[UITableView mas_makeConstra ...