如何按索引顺序连接2个数组?

时间:2019-07-10 01:48:06

标签: javascript

我试图弄清楚如何在日期中使用高位图表。我正在执行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
                 })
            });




        }

这可能是一个非常基本的问题,但是我是一个初学者,找不到任何相关的任何东西。

3 个答案:

答案 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