我意识到当我在一个函数中放入一个循环并希望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
)。这有什么不对?
答案 0 :(得分:2)
您可以收集值并在函数末尾返回,而不是使用一个值提前退出。
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;
答案 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
循环:
const arr = [[1,2], [3,4], [5,6]];
const getVal = (inputArr) => [].concat(...inputArr);
console.log(getVal(arr));
&#13;