函数仅返回第一个值

时间:2018-05-13 19:51:33

标签: javascript function for-loop

我意识到当我在一个函数中放入一个循环并希望return这个值时它只会给我第一个值。就像在这个例子中一样:

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

function getVal(item) {
    var result;
    for (var i = 0; i < item.length; i++) {
        for (var j = 0; j < item[i].length; j++) {
            return (item[i][j])
        }
    }
}

console.log(getVal(arr));

它只会给我1的值。但是当我在功能中添加console.log而不是return时,它会给我预期的结果(1,2,3,4,5,6)。这有什么不对?

4 个答案:

答案 0 :(得分:2)

您可以收集值并在函数末尾返回,而不是使用一个值提前退出。

&#13;
&#13;
function getVal(item) {
    var result = [];
    for (var i = 0; i < item.length; i++) {
        for (var j = 0; j < item[i].length; j++) {
            result.push(item[i][j]);
        }
    }
    return result;
}

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

console.log(getVal(arr));
&#13;
&#13;
&#13;

答案 1 :(得分:1)

return关键字将以给定的返回值结束该函数。 console.log()只给出值的输出。

答案 2 :(得分:1)

这应该让你去:

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

function getVal(item) {
    var result = [];
    for (var i = 0; i < item.length; i++) {
        for (var j = 0; j < item[i].length; j++) {
            result.push(item[i][j]);
        }
    }
    return result;
}

console.log(getVal(arr));

答案 3 :(得分:0)

如果你想返回输入的平面映射,你可能最好完全避开for循环:

&#13;
&#13;
const arr = [[1,2], [3,4], [5,6]];
const getVal = (inputArr) => [].concat(...inputArr);
console.log(getVal(arr));
&#13;
&#13;
&#13;