Я понял, что когда я помещаю цикл внутри функции и хочу 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
). Что здесь не так?
Вы можете собрать значения и вернуться в конце функции вместо раннего выхода с одним значением.
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));
Ключевое слово return
приведет к завершению функции с заданным возвращаемым значением. console.log()
просто дает результат значения.
это должно получиться:
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));
Если вы хотите вернуть плоское отображение ввода, вам, вероятно, будет лучше избегать циклов for
:
const arr = [[1,2], [3,4], [5,6]];
const getVal = (inputArr) => [].concat(...inputArr);
console.log(getVal(arr));
console.log
внутри цикла - это хорошая практика? Что если я хочу получить весь результат, а не только первый элемент?