javascript基础--数组,字符串操作,Math函数

数据的操作方法:

 1 var arr = [1,2,3,4,5];
 2 
 3 arr.push(6,7);//可以在数组的最后一位开始添加数列(1+);并返回数组的长度。
 4 
 5 arr.pop();//删除数组的最后一位。并返回那一位数组的内容。
 6 
 7 arr.shift();//删除数组的第0位,并返回那一位数组的内容。
 8 
 9 arr.unshift(-1,0);//从数组的第0位前,添加数列,并返回数组的长度。
10 
11 arr.join('');//将每列数组按照指定的符号或者不设置符号(空字符串)隔开每列数组。

 

字符串的操作方法:

用 splice 实现 push、pop、shift、unshift方法

 1    var arr = [3,2];
 2    var arrOpts=(function(){
 3 
 4     function oArray(arr){
 5 
 6         if(Array.isArray(arr)){
 7             return true;
 8         }else{
 9             return false;
10         }
11 
12         }
13     function oPush(arr){
14 
15         if(!oArray(arr)){
16             return "不是一个数组!";
17         }
18         
19         for(var i=1;i<arguments.length;i++){
20             arr.splice(arr.length,0,arguments[i]);
21         }
22         
23         return arr.length;
24     }
25 
26     function oPop(arr){
27         
28         if(!oArray(arr)){
29             return "不是一个数组!";
30         }
31         
32         return arr.splice(arr.length-1,1)[0];
33     }
34 
35     function oUnshift(arr){
36        if(!oArray(arr)){
37             return "不是一个数组!";
38         }
39         if(arguments.length>=2){
40             for(var i = arguments.length-1;i>0;i--){
41                 arr.splice(0,0,arguments[i]);
42             }
43         }
44         return arr.length;
45     }
46 
47     function oShift(arr){
48         if(!oArray(arr)){
49             return "不是一个数组!";
50         }
51         return arr.splice(0,1)[0];
52     }
53 
54     return {
55         oPush:oPush,
56         oPop:oPop,
57         oUnshift:oUnshift,
58         oShift:oShift
59     }
60 
61    })();

 拼接字符串操作:

 1 var prod = { name:'女装', styles:['短款','冬季','春装'] };
 2 
 3 function getTpl(data){
 4 
 5 var html =[]; html.push('<dl class="product">');
 6 
 7 html.push('<dt>'+data.name+'</dt>');
 8 
 9 for(var i =0;i<data.styles.length;i++){
10 
11 html.push('<dd>'+data.styles[i]+'</dd>');
12 
13 }
14 
15 html.push('</dl>');
16 
17 return html.join('');
18 
19 }
20 
21 var result =getTpl(prod);
22
23 console.log(result);//

 写一个find函数,实现下面的功能 

 1 var arr = ['test',2,1.5,false];
 2 function find(arr,ele){
 3     for(var i=0;i<arr.length;i++){
 4         if(arr[i] === ele){
 5             return i;
 6         }   
 7     }
 8     return -1;
 9 }
10 find(arr, "test") // 0
11 find(arr, 2) // 1
12 find(arr, 0) // -1

写一个函数过滤数组中,不是数字的元素。

 1 var arr=["a",1,"b",2];
 2 
 3 function filterNumeric(arr){
 4     var fooArr = [];
 5     for(var i=0;i<arr.length;i++){
 6         if(typeof arr[i] === 'number'){
 7             fooArr.push(arr[i]);
 8         }
 9     }
10     return fooArr;
11 }

 对象obj有个className属性,里面的值为的是空格分割的字符串(和html元素的class特性类似),写addClass、removeClass函数,有如下功能:

 1 var obj = {className:'open menu'};
 2 
 3 var classOpt = (function(){
 4     
 5     //判断是否有这个class
 6     function hasClass(obj,cls){
 7 
 8         if( obj.className && arguments.length === 2){
 9             var fooArr = obj.className.split(' ');
10             for(var i=0;i<fooArr.length;i++){
11                 if(cls === fooArr[i]){
12                     return fooArr;//如果有这个class,返回
13                 }
14             }
15 
16             return false;//没有返回false
17         }
18     }
19 
20     function addClass(obj,cls){
21         
22         if(hasClass(obj,cls)){
23             return 'class已经存在,无法添加';
24         }
25 
26         return obj.className += ' '+cls;
27     }
28     
29     function removeClass(obj,cls){
30         if(hasClass(obj,cls)){
31             var fooArr = obj.className.split(' ');
32             for(var i=0;i<fooArr.length;i++){
33                 if(fooArr[i]===cls){
34                     fooArr.splice(i,1);
35                 }
36             }
37         return obj.className = fooArr.join(' ');
38         console.log(fooArr);
39         }
40         return '';
41     }
42 
43     return {
44         addClass:addClass,
45         removeClass:removeClass
46     }
47 })();

 

写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如 (***)

   function camelize(str){
       
       var fooArr = str.split('-');

       if(fooArr.length>=2){
           for(var i=1;i<fooArr.length;i++){
               fooArr[i] = fooArr[i].replace(fooArr[i][0],fooArr[i][0].toUpperCase());
           }
       }
       return fooArr.join('');
   }

 

写一个函数filterNumericInPlace,过滤数组中的数字,删除非数字 (****)

1 function filterNumericInplace(arr){
2   for(var i=0;i<arr.length;i++){
3     if(typeof arr[i] !== 'number'){
4       arr.splice(i,1);
5       i--;
6     }
7   }
8 }//对原数组进行操作,不返回值。

写一个ageSort函数实现如下功能 (***)

1 function ageSort(arr){
2   arr.sort(numSort);
3   function numSort(a,b){
4     return a.age - b.age;
5   }
6 }

写一个filter(arr, func) 函数用于过滤数组,接受两个参数,第一个是要处理的数组,第二个参数是回调函数(回调函数遍历接受每一个数组元素,当函数返回true时保留该元素,否则删除该元素)。实现如下功能: (****)

 1 arr = ["a",3,4,true, -1, 2, "b"];
 2 function isNum(elem){
 3   return typeof elem ==='number';
 4 }
 5 function filter(arr,callback){
 6   for(var i=0;i<arr.length;i++){
 7     if(!callback(arr[i])){
 8       arr.splice(i,1);
 9       i--;
10     }
11   }
12 }// 在filter函数中遍历数组,之后将callback函数返回一个布尔值,进行if判断,判断false即不符合条件的就删除该元素。

字符串操作

写一个 ucFirst函数,返回第一个字母为大写的字符 (***)

1 var s1 = 'hello';
2 function ucFirst(str){
3   return str=str.replace(str[0],str[0].toUpperCase());
4 }

写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,如 (****)

1 var s1 = "hello, this is hunger valley";
2 var s2 = "This is a string";
3 function truncate(str,maxlen){
4   if(arguments.length=2){
5     if(str.length >= maxlen){
6       return str.slice(0,maxlen)+'...';
7     }
8   }
9 }

数学函数

写一个函数limit2,保留数字小数点后两位,四舍五入, 如: (**)

 1 function limit2(num){ 2 return Math.round(num*100)/100; 3 } 

写一个函数,获取从min到max之间的随机数,包括min不包括max (***)

  function MinToMaxRandom(min,max){

    return Math.random()*(max-min) + min;
    
  }

  

写一个函数,获取从min都max之间的随机整数,包括min包括max (***)

  function randomInt(min,max){

    return Math.floor(Math.random()*(max-min+1) + min);

  }//Math.floor()向下取整,Math.random()0~1随机数,包含0不包含1

  

写一个函数,获取一个随机数组,数组中元素为长度为len,最小值为min,最大值为max(包括)的随机数 (***)

 

function randomArrayMinToMax(min, max, len) {
          var arr = [];
          for (var i = 0; i < len; i++) {
              arr.push(Math.round((max - min) * Math.random() + min));
          }
          return arr;
      }
//这里的随机数是随机整数

  

posted @ 2016-07-20 17:56  chenyuru  阅读(257)  评论(0编辑  收藏  举报