返回数组Javascript的前n个元素

时间:2017-09-07 23:44:17

标签: javascript arrays

我正在编写一个函数,它将返回数组的前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;
};

3 个答案:

答案 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}