我试图弄清楚如何在日期中使用高位图表。我正在执行API调用,并在一个变量中单击并在另一个变量中包含日期。我想串联这两个数组,但要遵循索引。
例如
array1 = [timestamp1 , timestamp2, timestamp3]
array2 =[ clicks1, clicks2, clicks3 ]
我想拥有一个数组
data = 0: [timestamp1, click1],
1: [timestamp2, click2],
2: [timestamp3, click3]
我尝试做var data = array1.concat(array2);
但按顺序连接
data = [timestamp1 , timestamp2, timestamp3 , clicks1, clicks2, clicks3 ]
我的原始代码如下:
getChartData(){
axios.get("http://localhost:3003/desktop").then(api =>{
const data = api.data;
// console.log(data)
var date =[];
var clicks = []
var impressions =[]
for ( var i in data)
{
date.push(data[i].Date)
clicks.push(data[i].Clicks)
impressions.push(data[i].Impressions)
}
var cd = date.concat(clicks);
console.log(cd)
this.setState({
clicks:clicks,
date:date,
impressions:impressions,
cd: cd
})
});
}
这可能是一个非常基本的问题,但是我是一个初学者,找不到任何相关的任何东西。
答案 0 :(得分:2)
您可以解析一个数组的所有键,然后使用该键从两个数组中检索值。例如:
let output = []
Object.keys(array1).forEach((key) => {
output.push(array1[key], array2[key]);
});
这里我使用的是forEach
数组函数,但是您可以使用常规的foreach
循环来达到相同的目标。
请注意,此代码未经测试,只是为了向您展示基本思想。
答案 1 :(得分:2)
假设两个数组的长度相同,则可以使用类似的内容。您可以通过多种方式进行迭代。
const arr1 = ['a', 'b', 'c'];
const arr2 = ['A', 'B', 'C'];
const arrPaired = arr1.map((ent, i) => [ent, arr2[i]]);
console.log(arrPaired);
答案 2 :(得分:1)
您要寻找的是“压缩”,在Haskell等语言中很常见。
已经有人回答了here。