数组

作者: INGME | 来源:发表于2017-12-26 19:26 被阅读0次
    1.创建数组的方式
    1.1字面量
    var arr =[1,2,3]
    
    1.2构造函数
    var arr = new Array();
    arr[0] = 1;
    
    2.检测数组的方式
    if(arr instanceof Array){}
    
    if(Array.isArray(arr)){}
    
    3.数组的方法
    a.增加
    3.1.1增加(改变数组的内容)
    从尾部添加push()
    var arr = [1,2,3];
    arr.push(4);
    console.log(arr);    //1,2,3,4
    
    从头部添加unshift()
    var arr = [1,2,3];
    arr.unshift(0);
    alert(arr);  //0,1,2,3
    
    3.1.2增加concat()(不改变原来数组内容),concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array
    var arr = ['A', 'B', 'C'];
    var added = arr.concat([1, 2, 3]);
    added; // ['A', 'B', 'C', 1, 2, 3]
    arr; // ['A', 'B', 'C']
    
    b.删除
    3.2删除(改变)
    从尾部删除pop()
    var arr = [1,2,3];
    alert(arr.pop());  //3
    alert(arr)  //1,2
    
    从头部删除shift()
    var arr = [1,2,3];
    alert(arr.shift());  //1
    alert(arr)  //2,3
    
    c.修改
    3.3修改,指定三个参数arrObject.splice(index,howmany,item)指定三个参数:指定索引,删除的项数,插入的值
    var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
    // 从索引2开始删除3个元素,然后再添加两个元素:
    arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
    arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
    // 只删除,不添加:
    arr.splice(2, 2); // ['Google', 'Facebook']
    arr; // ['Microsoft', 'Apple', 'Oracle']
    // 只添加,不删除:
    arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
    arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
    
    d.查询
    3.4.1查询对应下标的值arr[index]
    var arr=[1,2,3];
    console.log(arr[0]);  //1;
    
    3.4.2查询对应值的下标indexOf(value)
    var arr = [10, 20, '30', 'xyz'];
    arr.indexOf(10); // 元素10的索引为0
    arr.indexOf(20); // 元素20的索引为1
    arr.indexOf(30); // 元素30没有找到,返回-1        //如果没有对应的值,则返回-1
    arr.indexOf('30'); // 元素'30'的索引为2
    
    3.4.3查询截取arrayObject.slice(start,end)的部分元素,然后返回一个新的Array
    var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
    arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
    注意到slice()的起止参数包括开始索引,不包括结束索引。
    
    如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array
    var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    var aCopy = arr.slice();
    aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
    aCopy === arr; // false
    
    3.4.4join()方法把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串
    var arr = ["red","green","yellow"]
    
    var a =  arr.join();     //red,green,yellow
    var b = arr.join("");   //redgreenyellow
    var c = arr.join(".")  //red.green.yellow
    
    3.4.5排序sort()
    var arr = [1,12,34,5,6];
    var c =  arr.sort(function(a,b){
           return a-b;    //升序
           return b-a;   //降序
    });
    console.log(c);     //1,5,6,12,34
    console.log(c);    //34,12,6,5,1
    
    sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序
    3.4.6反转reverse()把整个Array的元素给掉个个
    var arr = ['one', 'two', 'three'];
    arr.reverse(); 
    arr; // ['three', 'two', 'one']
    
    3.4.7归并(求和)方法reduce()
    var numbers = [1,2,3,4,5]
    var sum = numbers.reduce(function(a,b){
            return a+b;
    });
    alert(sum);    //15
    

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/xdvdgxtx.html