2个json,是否可以合并,前端js怎么各自使用

2个json
api1
[0.03,0.66,0.41,0.01,0.04,0.07,0.16,0.87,3.52,2.43,2.65,5.8,5.76]
api2
[2019,2018,2017,2015,2014,2013,2012,2011,2010,2009,2008,2005,2004]
是否能合并,合并之后,前端success使用,应该怎么区分


```javascript
url: '/api_app/api1', //仅为示例,并非真实接口地址。
                    method: 'get',
                    dataType: 'json',
                    //withCredentials:true,
                    xhrFields: {
                      withCredentials: true
                    },
                    crossDomain: true,
                    success: (res) => {
                        this.categories = res.data;
                        console.log(res.data);
                    }

url: '/api_app/api2', //仅为示例,并非真实接口地址。
                    method: 'get',
                    dataType: 'json',
                    //withCredentials:true,
                    xhrFields: {
                      withCredentials: true
                    },
                    crossDomain: true,
                    success: (res) => {
                        this.tipoc = res.data;
                        console.log(res.data);
                    }

```

  1. 方法一:循环遍历法
function extend() {
    var length = arguments.length;
    if(length == 0)return {};
    if(length == 1)return arguments[0];
    var target = arguments[0] || {};
    for (var i = 1; i < length; i++) {
        var source = arguments[i];
        for (var key in source) {
            if (source.hasOwnProperty(key)) {
                target[key] = source[key];
            }
        }
    }
     
    return target;
}
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4, d: 5 };
const result = extend(obj1, obj2);
console.log(result);//{ a: 1, b: 3, c: 4, d: 5 }
  1. 方法二:Object.assign()
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4, d: 5 };
const result = Object.assign(obj1, obj2);
console.log(result);//{ a: 1, b: 3, c: 4, d: 5 }
  1. 方法三:用jQuery插件
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM(`<!DOCTYPE html>`);
const $ = require('jQuery')(window);
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4, d: 5 };
const result = $.extend(obj1, obj2);
console.log(result);//{ a: 1, b: 3, c: 4, d: 5 }

如果只有两个的话,最简单的办法就是把两个嵌套起来。
api1的成功回调中再去发起api2的请求
如果过多,请用promise,或者其他的办法

var json3 = {...json1,...json2}

使用结构赋值 json={...json1,...json2}
相同的键,他会拿后面一个json的值

看上面回答好像大家没有关注到你的是否可以合并的这个疑问。
目前来看是可以的
[0.03,0.66,0.41,0.01,0.04,0.07,0.16,0.87,3.52,2.43,2.65,5.8,5.76]
[2019,2018,2017,2015,2014,2013,2012,2011,2010,2009,2008,2005,2004]
=》 合并成list
[{"year": 2019, percent: 0.03},{"year": 2018, percent: 0.66},...,{"year": 2014, percent: 5.76}]
或者用特殊符号连接起来
[2019-0.03,2018-0.66,...,2004-5.76]
前段获取数组的时候
如果是第一种数组


for(var i = 0; i < res.data.length; i++) {
  res.data[i].year
  res.data[i].percent
}

第二种数组
按照-进行分割成


```javascript
for(var i = 0; i < res.data.length; i++) {
  var str = res.data[i]
  var arr = str.split("-")
  var year = arr[0]
  var percent = arr[1]
}

```
如给您提供了思路,请采纳

方法如下,如果对你所有帮助望采纳


如果2个json之间有对应关系,后台可以修改数据结构,返回list集合对应的json数据(比如List<Result> jsonResult),
然后自己声明Result实体类,包含两个属性,double percent和String year即可;如果2个json没有对应关系,可以返回map对象对应的json数据,map包含两个key,
一个为百分比percent的key,一个为yearkey,对应的值可以为百分比和年份的集合(示例代码 map.put("percent",percentList),map.put("year",yearList)))
最简单的办法
[...json1, ...json2]

仅从你提供和两个数组来看,合并后前端取值时可以判断是否是小数来做区分,

es6 语法 可以将两个数组合并,看看对你有帮助没

var json3 = {...json1,...json2}