js数组集合训练
2019-08-06 本文已影响8人
意蜀
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) {
//在这里写入代码
if(number_a>number_b){
return collection_b;
}else if(number_a<number_b){
return collection_a;
}else{
if(collection_a.includes(number_a)||collection_b.includes(number_a)){
return [number_a];
}else{
return [];
}
}
}
4.弹出两个集合的交集
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();
}
5.根据给出的两个数字得到对应的字母区间
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'
];
if(number_a<number_b){
return collection_a;
}else if(number_a>number_b){
return collection_b;
}else{
return str[number_a];
}
}
6.弹出两个集合的并集
function get_union(collection_a, collection_b) {
//在这里写入代码
console.log( collection_a.concat(collection_b.filter(function(v){ return !(collection_a.indexOf(v) > -1)})));
}
7.从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;
}
8.从collection中选出不重复的数字
function choose_no_repeat_number(collection) {
//在这里写入代码
var result=[];
for(var i=0;i<collection.length;i++){
if(collection[i]!==collection[i+1]){
result.push(collection[i]);
}
}
return result;
}
9.从collection中计算出每个数的个数
function grouping_count(collection) {
return collection.reduce((p,k) => (p[k]++ || (p[k] = 1),p),{});
}
10.选出A集合中与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;
}
11.选出A集合中与B集合中的不共有元素
function choose_no_common_elements(collection_a, collection_b) {
//在这里写入代码
return collection_a.filter(function(v){ return collection_b.indexOf(v) == -1 });
}
12.出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]);
}
}
}
console.log(result);
}
13.四倍加一
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;
};
14.字母表映射2
var number_map_to_word_over_26 = function(collection){
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'
];
var result=[];
for(var j=0;j<collection.length;j++)
for(var i=0;i<str.length;i++){
if(collection[j]==i){
result.push(str[i]);
}
}
return result;
};
15.数字映射为字母
var number_map_to_word = function(collection){
var str="0abcdefg";
var result=[];
var show=[];
for(var i=0;i<str.length;i++){
result.push(str[i]);
}
for(var j=0;j<collection.length;j++){
for(var k=0;k<result.length;k++){
if(k==collection[j]){
show.push(result[k]);
}
}
}
return show;
};
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 compute_median(collection) {
//在这里写入代码
if(collection.length%2!=0){
return collection[(collection.length-1)/2];
}else{
var sum=collection[collection.length/2]+collection[collection.length/2-1];
return sum/2;
}
}
23.计算给定集合元素的总和
function calculate_elements_sum(collection) {
//在这里写入代码
var sum=0;
for(var i=0;i<collection.length;i++){
sum+=collection[i];
}
return sum;
}
24.找出某元素在给定集合中的第一个下标
function calculate_elements_sum(collection, element) {
//在这里写入代码
return collection.indexOf(element);
}
25.找出某元素在给定集合中的最后一个下标
function calculate_elements_sum(collection, element) {
//在这里写入代码
return collection.lastIndexOf(element);
}
26.找出给定集合元素的第一个偶数
function find_first_even(collection) {
//在这里写入代码
for(var i=0;i<collection.length;i++){
if(collection[i]%2==0){
console.log(collection.indexOf(collection[i]));
break;
}
}
}
27.找出给定集合元素的最后一个偶数
function find_last_even(collection) {
//在这里写入代码
for(var i=collection.length-1;i>=0;i--){
if(collection[i]%2==0){
console.log(collection.lastIndexOf(collection[i]));
break;
}
}
}
28.根据给定数字无限分割至小于等于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;
}
29.数组的每个偶数映射为字母
function even_to_letter(collection) {
//在这里写入代码
var str="abcdefghijklmn";
var result=[];
for(var i=0;i<collection.length;i++){
if(collection[i]%2==0){
result.push(str[i]);
}
}
return result;
}
30.数组的平均数(如果是小数上取整)映射为字母
function average_to_letter(collection) {
//在这里写入代码
var sum=0;
var str="abcdefghijklmn";
for(var i=0;i<collection.length;i++){
sum+=collection[i];
}
var aver=Math.ceil(sum/collection.length);
console.log(str[aver-1]);
}
31.每一个数*3 +2再算总和
function hybrid_operation(collection) {
//在这里写入代码
var result=[];
var sum=0;
for(var i=0;i<collection.length;i++){
result.push(collection[i]*3+2);
}
for(var j=0;j<result.length;j++){
sum+=result[j];
}
return sum;
}
32.每一个奇数*3+5再求总和
function hybrid_operation_to_uneven(collection) {
//在这里写入代码
var result=[];
var sum=0
for(var i=0;i<collection.length;i++){
if(collection[i]%2==0){
result.push(collection[i]);
}
else{
result.push(collection[i]*3+5);
}
}
for(var j=0;j<result.length;j++){
sum+=result[j];
}
return sum;
}
36.1-10的偶数算总数
function amount_even(collection) {
//在这里写入代码
var sum=0;
for(var i=0;i<collection.length;i++){
if(collection[i]%2==0){
sum+=collection[i];
}
}
return sum;
}
37.1-10的奇数算平均数
function average_uneven(collection) {
//在这里写入代码
var sum=0;
for(var i=0;i<collection.length;i++){
if(collection[i]%2!==0){
sum+=collection[i];
}
}
return sum;
}
38.(20,53)的中位数(如果是小数上取整)对应的字母
function median_to_letter(collection) {
//在这里写入代码
var str='0abcdefghijklmnopqrstuvwxyz';
var data=[];
for (let i = 0; i < str.length; i++) {
data.push(str[i]);
}
for (let i = 1; i <str.length ; i++) {
for (let j = 1; j < str.length; j++) {
data.push(str[i]+str[j]);
}
}
if(collection.length%2==1){
return data[collection[collection.length-1/2]];
}else {
return data[Math.ceil((collection[collection.length/2]+collection[(collection.length/2)-1])/2)];
}
}
39.计算第偶数个元素的平均数
var calculate_average = function(collection){
var result=[];
var sum=0;
for(var i=0;i<collection.length;i++){
if(collection[i]%2==0){
result.push(collection[i]);
}
}
for(var j=0;j<result.length;j++){
sum+=result[j];
}
return sum/result.length;
};
40.计算所有第偶数个元素的中位数
var calculate_median = function(collection){
var result=[];
for(var i=0;i<collection.length;i++){
if(collection[i]%2==0){
result.push(collection[i]);
}
}
if(result.length%2!==0){
return result[Math.floor(result.length/2)];
}else{
var sum=result[result.length/2]+result[result.length/2-1];
return sum/2;
}
};
41.下标为偶数的元素中,是否存在给定的数字
var is_exist_element = function(collection,element){
for(var i=0;i<collection.length;i+=2){
if(collection[i]==element){
console.log(true);
break;
}else{
console.log(false);
break;
}
}
};