我在课堂上工作,内置编辑器告诉我这个功能返回" a",但我希望它返回" a"," b&#34 ;," C"" d&#34 ;.有人可以解释我在这里不理解的内容吗?
function chunk(arr) {
for(var i = 0; i <= arr.length; i++)
return arr[i];
}
chunk(['a', 'b', 'c', 'd']);``
答案 0 :(得分:1)
一个函数只能有一个返回值,所以代码在第一次执行return
时结束。 return
语句被定义为立即退出函数。
返回值可以是数组(或对象),因此如果要返回多个值,可以将它们放在数组中:
function chunk(arr) {
var result = [];
for(var i = 0; i <= arr.length; i++) {
result.push(arr[i] + '!');
}
return result;
}
var values = chunk(['a', 'b', 'c', 'd']);
// values now contain ['a!', 'b!', 'c!', 'd!']
答案 1 :(得分:0)
它返回&#39; a&#39;因为return语句本身返回数组中的特定项
return arr[i];//in example above, i is 0
^^^
想象一下数组结构如
0 -> a
1 -> b
2 -> c
3 -> d
4 -> e
因此,当您使用索引0
进行访问时,会返回a
。
要返回整个数组,请不要使用索引
return arr;
答案 2 :(得分:0)
你太早回来了:
function chunk(arr) {
var newArr = [];
for(var i = 0; i <= arr.length; i++) {
newArr.push(arr[i]);
}
return newArr;
}
这应该有用。
答案 3 :(得分:0)
您应该使用 .map() 方法,该方法创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。 它更干净。
所以就这样做:
function chunk(arr) {
//Map our array and return a new array
return arr.map(function(elm){
return elm;
});
};
var a = chunk(['a', 'b', 'c', 'd']);
console.log(a);
//Print ["a", "b", "c", "d"]