Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组扩展现有对象的数据_Javascript_Arrays_Object_Vue.js - Fatal编程技术网

Javascript 从数组扩展现有对象的数据

Javascript 从数组扩展现有对象的数据,javascript,arrays,object,vue.js,Javascript,Arrays,Object,Vue.js,我从API接收JSON格式的数组。我想将它们合并到名为的嵌套数组中,该数组由对象graphData组成。如何通过一个条目扩展数据对象 mounted() { var i = 0; const axios = require('axios'); //Usage axios.get("https://3.11.40.69:9001/app/usageUnitForCustomer/1521/2019-12-30/2020-12-30") .then(resp

我从API接收JSON格式的数组。我想将它们合并到名为的嵌套数组中,该数组由对象
graphData
组成。如何通过一个条目扩展数据对象

mounted() {

   var i = 0;
   const axios = require('axios');
    //Usage
    axios.get("https://3.11.40.69:9001/app/usageUnitForCustomer/1521/2019-12-30/2020-12-30")
      .then(response => {
        const time = response.data.event_time; //["2019-12-30T14:06:21.000Z", "2019-12-30T14:06:21.000Z"]
        const unit = response.data.unit; //[44.67, 75.89]
        for (i = 0; i < 1; i++) {
          if (time[i] !== time[i + 1]) {
            this.graphData[1].data.time[i] = unit[i];
          }
        } 
      })
    //Revenue
    axios.get("https://3.11.40.69:9001/app/revenueUnitForMachine/345/2019-12-30/2020-12-30")
      .then(response => {
        const time = response.data.event_time; //["2019-12-30T14:06:21.000Z", "2019-12-30T14:06:21.000Z"]
        const unit = response.data.revenue; //[44, 75]
        for (i = 0; i < 10; i++) {
          if (time[i] !== time[i + 1]) {
            this.graphData[0].data.time[i] = unit[i];
          }
        } 

      })
  },
  data() {
      return {
        graphData: [
          {name: 'Revenue', data: {}},
          {name: 'Usage', data: {}}
        ]
      }
    }
预期成果:

graphData: [
          {name: 'Revenue', data: {'2019-12-30T14:06:21.000Z': 448, '2019-12-30T14:06:22.000Z': 44}},
          {name: 'Usage', data: {'2019-12-30T14:06:21.000Z': 448, '2019-12-30T14:06:22.000Z': 44}}
        ]

有人有主意吗

无法从.then()块中访问外部变量。您应该能够使整个外部块成为
async
,并使用
wait
进行
axios
调用

试着这样做:

async mounted() {

   var i = 0;
   const axios = require('axios');
    //Usage

   const response = await axios.get("https://3.11.40.69:9001/app/usageUnitForCustomer/1521/2019-12-30/2020-12-30");

        const time = response.data.event_time;
        const unit = response.data.unit;
        for (i = 0; i < 1; i++) {
          if (time[i] !== time[i + 1]) {
            this.graphData[1].data.time[i] = unit[i];
          }
        } 


...
async-mounted(){
var i=0;
const axios=require('axios');
//用法
const response=等待axios.get(“https://3.11.40.69:9001/app/usageUnitForCustomer/1521/2019-12-30/2020-12-30");
const time=response.data.event_time;
常量单位=response.data.unit;
对于(i=0;i<1;i++){
如果(时间[i]!==时间[i+1]){
this.graphData[1].data.time[i]=单位[i];
}
} 
...

…对于其余的
axios
调用,继续使用
await

您无法从.then()块中访问外部变量。您应该能够将整个外部块变为
async
,并对
axios
调用使用
await

试着这样做:

async mounted() {

   var i = 0;
   const axios = require('axios');
    //Usage

   const response = await axios.get("https://3.11.40.69:9001/app/usageUnitForCustomer/1521/2019-12-30/2020-12-30");

        const time = response.data.event_time;
        const unit = response.data.unit;
        for (i = 0; i < 1; i++) {
          if (time[i] !== time[i + 1]) {
            this.graphData[1].data.time[i] = unit[i];
          }
        } 


...
async-mounted(){
var i=0;
const axios=require('axios');
//用法
const response=等待axios.get(“https://3.11.40.69:9001/app/usageUnitForCustomer/1521/2019-12-30/2020-12-30");
const time=response.data.event_time;
常量单位=response.data.unit;
对于(i=0;i<1;i++){
如果(时间[i]!==时间[i+1]){
this.graphData[1].data.time[i]=单位[i];
}
} 
...

…对于其余的
axios
调用,继续使用
wait

我看到的一个问题是,您在
this.graphData[1].data.time[I]=unit[I];
中访问
time[I]
,但它没有在对象中定义

也许将其初始化为数组会有所帮助

data() {
    return {
        graphData: [
          {name: 'Revenue', data: { time: [] }},
          {name: 'Usage', data: { time: [] }}
        ]
    }
}
编辑:好,编辑预期结果后,我看到另一个问题

你能试着像这样设置这个值吗

this.graphData[1].data[time[i]] = unit[i];

注意
time[i]
周围额外的
[]
我看到的一个问题是,您在
this.graphData[1].data.time[i]=unit[i];
中访问
time[i]
,但它没有在对象中定义

也许将其初始化为数组会有所帮助

data() {
    return {
        graphData: [
          {name: 'Revenue', data: { time: [] }},
          {name: 'Usage', data: { time: [] }}
        ]
    }
}
编辑:好,编辑预期结果后,我看到另一个问题

你能试着像这样设置这个值吗

this.graphData[1].data[time[i]] = unit[i];

请注意
时间[i]周围的额外
[]

你能给出一个api返回的数据结构和你想要创建的新数据结构的示例吗?@programmerRaj我在帖子中编辑了它。好的,我知道输出是什么样的,但是输入是什么形式的?@programmerRaj在帖子中编辑的。你能给出一个数据结构返回的示例吗通过api和您想要创建的新数据结构进行了修改?@programmerRaj我在帖子中对其进行了编辑。好的,我知道输出需要是什么样的,但是输入是什么形式的?@programmerRaj在帖子中编辑。