我正在编写一个函数,它将返回数组的前n个元素,如果n未定义,则返回第一个元素。
*编辑:我解决了这个问题。
_.first = function(array, n) {
var result = [];
if (n == undefined) {
return array[0];
}
var m;
if (array.length < n) {
m = array.length;
} else {
m = n;
}
for (var i = 0; i < m; i++) {
result.push(array[i]);
} return result;
};
答案 0 :(得分:0)
1_.first = function(array, n) {
2 var result = [];
3 for (var i = 0; i < n; i++) {
4 result.push(array[i]);
5 return result;
6 } return array[0];
7};
问题是在第5行,你似乎是第一次返回而没有考虑到n部分
解决方案可能是
_first = function(array, n){
var result = [];
if(n === undefined) return array[0];
for (var i = 0; i < n; i++) {
result.push(array[i]);
}
return result;
}
答案 1 :(得分:0)
这个程序基本上是检查n值是否大于数组的长度,如果是,则退出。
如果n不是 数字 ,则退出。如果是,它执行程序并使用for循环记录索引的值,直到i
达到n值。此外,它将值推送到空数组,因此您可以从数组中获取值以供以后使用。
var arr1 = [2, 3, 4, 5, 6, 7, 8];
var arr2 = []; //empty array
function arrNreturn(arr, n){
if(typeof n != 'number'){
console.log('n is not a number');
return false; //exit the program
}
if(n > arr.length){
console.log("the n value is bigger than the length");
}else{
for(var i = 0; i < n; i++){
console.log(arr[n]);
arr2.push(arr[n]);
}
}
}
arrNreturn(arr1, 10);
答案 2 :(得分:0)
基本是
const newArr = function(arr) {return n }
速记
const newArr = arr => { return n}