js数组集合训练

1.选出给定区间中所有的偶数

function collect_all_even(collection) {
  //在这里写入代码
  var result=[];
  for(var i=0;i<collection.length;i++){
    if(collection[i]%2==0)
    result.push(collection[i]);
  }
  return result;
}

2.弹出集合最后一个元素

function collect_last_element(collection) {
  //在这里写入代码
  return collection[collection.length-1];
}

3.根据给出的两个数字得到自增,自减等的偶数区间


function get_integer_interval_2(number_a, number_b) {
  //在这里写入代码
  var result=[];
  if(number_a>number_b){
   for(var i=number_a;i>=number_b;i--){
    if(i%2==0){
      result.push(i);
    }
   }
   return result;
  }else if(number_a<number_b){
    for(var i=number_a;i<=number_b;i++){
      if(i%2==0){
        result.push(i);
      }
    }
      return result;
  }else{
    if(number_a%2==0){
      return [number_a];
    }else{

      return [];
    }
  }
}

4.根据给出的两个数字得到一个自增/减1的数字区间


function get_integer_interval(number_a, number_b) {
  //在这里写入代码
  var result=[];
  if(number_a>number_b){
   for(var i=number_a;i>=number_b;i--){

      result.push(i);

   }
   return result;
  }else if(number_a<number_b){
    for(var i=number_a;i<=number_b;i++){
     
        result.push(i);
 
    }
      return result;
  }else{
    return [number_a];
  }
}

5.弹出两个集合的交集

function get_intersection(collection_a, collection_b) {
  //在这里写入代码
  var result=[];
  for(var i=0;i<collection_a.length;i++){
    for(var j=0;j<collection_b.length;j++){
      if(collection_a[i]==collection_b[j]){
        result.push(collection_a[i]);
      }
    }
  }
  return result.sort().reverse();
}

6.根据给出的两个数字得到对应自增/减的字母区间


function get_letter_interval_2(number_a, number_b) {
  //在这里写入代码
  var str=['0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
  'aa','ab','ac','ad','ae','af','ag', 'ah', 'ai', 'aj', 'ak', 'al', 'am', 'an', 'ao', 'ap',
  'aq', 'ar', 'as', 'at', 'au', 'av', 'aw', 'ax', 'ay',
  'az', 'ba'
  ];
  var result=[];
  if(number_a<number_b){
  for(var i=number_a;i<=number_b;i++){
    result.push(str[i]);
  }
  return result;
  }else if(number_a>number_b){
    for(var i=number_a;i>=number_b;i--){
      result.push(str[i]);
    }
    return result;
  }else{
    return [str[number_a]];
  }
}

7.根据给出的两个数字得到对应自增/减的字母区间

function get_letter_interval(number_a, number_b) {
  //在这里写入代码
  var str=['0','a','b','c','d','e','f','g','h'];
  var result=[];
  if(number_a<number_b){
    for(var i=number_a;i<=number_b;i++){
      result.push(str[i]);
    }
    return result;
  }else if(number_a>number_b){
    for(var i=number_a;i>=number_b;i--){
      result.push(str[i]);
    }
    return result;
  }else{
    return [str[number_a]];
  }
}

8.弹出两个集合的并集

function get_union(collection_a, collection_b) {
  //在这里写入代码

  return collection_a.concat(collection_b.filter(function(v) {return collection_a.indexOf(v) === -1 } ))
  }

9.从collection中选出偶数

function choose_even(collection) {

  //在这里写入代码
  var result=[];
  for(var i=0;i<collection.length;i++){
    if(collection[i]%2==0){
      result.push(collection[i]);
    }
  }
  return result;
}

10.从collection中选出3的倍数

function choose_multiples_of_three(collection) {

  //在这里写入代码
  var result=[];
   for(var i=0;i<collection.length;i++){
     if(collection[i]%3==0){
       result.push(collection[i]);
     }
   }
   return result;
}

11.选出A集合中与B集合中的共有元素

function choose_common_elements(collection_a, collection_b) {

  //在这里写入代码
  var result=[];
  for(var i=0;i<collection_a.length;i++){
    for(var j=0;j<collection_b.length;j++){
      if(collection_a[i]==collection_b[j]){
        result.push(collection_a[i]);
      }
    }
  }
 return result;
}

12.选出A集合中与B集合中的不共有元素

function choose_no_common_elements(collection_a, collection_b) {

  //在这里写入代码
return  collection_a.filter(function(v){ return collection_b.indexOf(v) == -1 });
}

13.选出A集合中可以被B集合中整除的数

function choose_divisible_integer(collection_a, collection_b) {

  //在这里写入代码
  var result=[];
  for(var i=0;i<collection_a.length;i++){
    for(var j=0;j<collection_b.length;j++){
      if(collection_a[i]%collection_b[j]==0){
        result.push(collection_a[i]);
      }
    }
    
  }
  return result;
}

14.把二维数组变成一维数组


function double_to_one(collection) {

  //在这里写入代码
  var collection_a=[];
 for (var i = 0; i < collection.length; i++) {
//instanceof则为判断一个对象是否为某一数据类型,或一个变量是否为一个对象的实例
   if(collection[i] instanceof Array)
   {
     for (var j = 0; j < collection[i].length; j++) {
       collection_a.push(collection[i][j]);
     }
   }
  else
   {
     collection_a.push(collection[i]);
   }
 }
 return collection_a;
}

15.四倍加一

var map_to_four_multiples_add_one = function(collection){
  var result=[];
  for(var i=0;i<collection.length;i++){
    result.push(collection[i]*4+1);
  }
  return result;
};

16.从大到小排序

var rank_asc = function(collection){
  collection.sort(function(a,b){
    return a-b;
  });
return collection.reverse();
};

17.从小到大排序

var rank_desc = function(collection){
  collection.sort(function(a,b){
    return a-b;
  });
  return collection;
};

18.选出给定数字集合元素的最大值

function collect_max_number(collection) {
  //在这里写入代码
   return Math.max.apply(this,collection);
}

19.选出给定数字集合元素的最小值

function collect_min_number(collection) {
  //在这里写入代码
  return Math.min.apply(this,collection);

}

20.判断两个集合是否相同

function compare_collections(collection_a, collection_b) {
  //在这里写入代码
 
 if (collection_a.length == collection_b.length) {
      for (let i = 0; i < collection_a.length; i++) {
        if (collection_a[i] != collection_b[i]) {
          return false;
        }
      }
    }
    else {
      return false;
    }
    return true;
}

21.计算集合的中位数

function compute_average(collection) {
  //在这里写入代码
  var sum=0;
  for(var i=0;i<collection.length;i++){
    sum+=collection[i];
  }
 return sum/collection.length;
}

22.找出某元素在给定集合中的第一个下标

function calculate_elements_sum(collection, element) {
  //在这里写入代码
  return collection.indexOf(element);
}

23.找出某元素在给定集合中的最后一个下标

function calculate_elements_sum(collection, element) {
  //在这里写入代码
 return collection.lastIndexOf(element);
}

24.找出给定集合元素的第一个偶数

function find_first_even(collection) {
  //在这里写入代码
  for(var i=0;i<collection.length;i++){
    if(collection[i]%2==0){
     return collection[i];
      break;
    }
  }
}

25.找出给定集合元素的最后一个偶数

function find_last_even(collection) {
  //在这里写入代码
  for(var i=collection.length-1;i>=0;i--){
    if(collection[i]%2==0){
      return collection.lastIndexOf(collection[i]);
      break;
    }
  }
}

26.根据给定数字无限分割至小于/等于0


function spilt_to_zero(number, interval) {
  //在这里写入代码
  var collection=[number];
  while (number>0){
    number=Math.round((number-interval)*10)/10;//保留一位小数
    collection.push(number);
  }
  return collection;
}

27.两大一小排序

function rank_by_two_large_one_small(collection){
  //这里写代码。。。

  function array_move(arr, old_index, new_index) {
    if (new_index >= arr.length) {
        var k = new_index - arr.length + 1;
        while (k--) {
            arr.push(undefined);
        }
    }
    arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);
    return arr; 
}
  collection.sort(function(a,b){
    return a-b;
  })
  var b=[];
  for(var i=0;i<collection.length;){
     b.push(collection.slice(i,i+3));
      i+=3;
  }
  for(var j=0;j<b.length;j++){
   if(b[j].length==3){
     array_move(b[j],0,2);
   }
  }
  var show = b.reduce(function (a, b) { return a.concat(b)} );
  return show;
}

28.每一个数与下一个数相加,乘以3,最后一个数不算

function one_add_next_multiply_three(collection){
  var result=[];
  for(var i=0;i<collection.length-1;i++){
    var item=(collection[i]+collection[i+1])*3;
    result.push(item);
  }
  return result;
}

29.偶数奇数分两头,偶数部分从小到大,奇数部分从大到小

var even_asc_odd_desc = function(collection){
    var odd=[];
    var even=[];
    var result=[];
for(var i=0;i<collection.length;i++){
    if(collection[i]%2==0){
        even.push(collection[i]);
    }else{
        odd.push(collection[i]);
    }
}
result=[even.sort(function(a,b){
    return a-b;
}),odd.sort(function(a,b){
    return a-b;
}).reverse()];
result=result.reduce(function(a,b){
    return a.concat(b);
})
return result;
};

30.下标为偶数的元素中,存在某元素

var is_exist_element = function(collection,element){
  var result=[];
   for(var i=0;i<collection.length;i+=2){
     result.push(collection[i]);
   }
   if(result.indexOf(element)==-1){
     return false;
   }else{
     return true;
   }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容