加倍阵列?

时间:2018-02-14 16:40:33

标签: javascript arrays

我试图找出如何获取我的数组

var arr = [1,2,3,4];

加倍。我已经创建了一个带有for循环的函数来打印每个数字两次,但由于某种原因" 4"被打印三次而不是两次。我试过arr.pop它,但没有任何反应。我把它放在错误的地方还是我必须做别的事?我的代码:

function start()
{
    var arr = [1,2,3,4];
    var doubled = doubleList(arr);
    println(doubled);
}

function doubleList(arr)
{
    for(var i = 0; i < arr.length; i++)
    {
        var cur = arr[i];
        print(cur);
        print(",");
        print(cur);
        print(",");
    }
    return cur;
}

我的结果:

1,1,2,2,3,3,4,4,4

4 个答案:

答案 0 :(得分:4)

您将返回> id <- 1:5 > paste0("SELECT * FROM table WHERE ID IN (", paste0(id, collapse = ","), ")") [1] "SELECT * FROM table WHERE ID IN (1,2,3,4,5)" 中的最后一个读取字符,然后将其打印在doubleList()中。这就是为什么你有3次而不是2次。

start()

答案 1 :(得分:4)

打印的最后4个来自

println(doubled);

由于其他印刷语句简单print而非println

,因此与其他字母保持一致

答案 2 :(得分:3)

我的doubleList函数如下所示:

function doubleList(arr) {
    var result = [];
    for (var i in arr) {
        result.push(arr[i]);
        result.push(arr[i]);
    }
    return result
}

答案 3 :(得分:1)

抱歉,我很想念这个问题,这是一个优雅的ES6解决方案。

const arr = [1,2,3,4];

const double2 = arr.reduce( (res, current, index, array) => {
    return res.concat([current, current]);
}, []);

console.log(double2)