Функция возвращает только первое значение - PullRequest
0 голосов
/ 13 мая 2018

Я понял, что когда я помещаю цикл внутри функции и хочу 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 голосов
/ 13 мая 2018

Если вы хотите вернуть плоское отображение ввода, вам, вероятно, будет лучше избегать циклов for полностью:

const arr = [[1,2], [3,4], [5,6]];
const getVal = (inputArr) => [].concat(...inputArr);
console.log(getVal(arr));
0 голосов
/ 13 мая 2018

Ключевое слово return завершит функцию с указанным возвращаемым значением. console.log() просто дает вывод значения.

0 голосов
/ 13 мая 2018

это должно помочь вам:

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));
0 голосов
/ 13 мая 2018

Вы можете собирать значения и возвращать их в конце функции вместо раннего выхода с одним значением.

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...