4_引用类型(【一】数组)

在ECMAScript中数组是非常常用的引用类型了。

//定义方式
var arr = new Array();
var arr = [1, 2, 3, 4, true, "abc", new Date()];
console.info(arr.length);
arr.length = 5;
console.info(arr);
console.info(arr.toString());

ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组也是一种对象。
特点:
    "数组"即一组数据的集合。
    js数组更加类似java的容器。长度可变,元素类型也可以不同!
    数组长度随时可变!随时可以修改!(length属性)
常用方法:
    push、pop

/**
 * push 和 pop方法
 * 修改数组自身
 */
 
var arr = [new Date(), false];
var result = arr.push(1, 2, true); //push方法向数组尾部追加元素,返回追加元素后的数组长度
console.info(result);
console.info(arr);
console.info(arr.length);
var obj = arr.pop(); //pop方法从数组尾部移除一个元素,返回当前移除的元素,数组长度-1
console.info(obj);
console.info(arr);
console.info(arr.length);

    shift、unshift

/**
 * shift 和 unshift方法
 * 修改数组自身
 */
var arr = [1, 2, 3, true, new Date()];
var r1 = arr.shift(); //shift方法从数组头部移除一个元素,返回当前移除的元素,数组长度-1
console.info(r1);
console.info(arr);
console.info(arr.length);
  
var r2 = arr.unshift(10, false); //unshift方法从数组头部追加元素,返回追加元素后的数组长度
console.info(r2);
console.info(arr);
console.info(arr.length);

    splice、slice

/**
 * splice、slice方法
 * splice方法操作数组本身,可在指定位置完成添加、修改、删除等操作
 * slice方法不操作数组本身,返回新的数组
 */
  
//splice()参数
//  第一个参数:起始位置
//  第二个参数:截取长度
//  第三个参数以后:表示追加的新元素
//  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
var arr = [1, 2, 3, 4, 5];
arr.splice(1, 2, 3, 4, 5); 
console.info(arr); //1, 3, 4, 5, 4, 5 
   
//slice() //返回截取的内容 截取的范围左闭右开
//  第一个参数:起始位置,包含
//  第二个参数:结束位置,不包含
var arr = [1, 2, 3, 4, 5];
var result = arr.slice(2, 4);
console.info(result);
console.info(arr);

    concat、join

//操作数组的方法: concat join
//concat 把两个数组合并为一个新数组,方法不操作数组本身,返回一个新的数组
var arr1 = [1, 2, 3];
var arr2 = [true, 4, 5];
var result = arr1.concat(arr2);
console.info(result);
console.info(arr1);
console.info(arr2); 
//join 把数组元素按指定分割符连接成一个字符串,方法不操作数组本身
var result = arr1.join("-");
console.info(arr1);
console.info(result);

    sort、reverse等

/**
 * sort排序
 * reverse倒序
 */
var arr1 = [5, 2, 1, 4, 3];
var arr2 = [10, 2, 4, 1, 7];
arr1.sort(); //sort()方法默认按照字符串方式比较
console.info(arr1); // [1, 2, 3, 4, 5]
arr1.reverse(); 
console.info(arr1); //[5, 4, 3, 2, 1]
arr2.sort();
console.info(arr2); //[1, 10, 2, 4, 7]
function compare(value1, value2){
    if(value1 < value2){
        return -1;
    } else if(value1 > value2){
        return 1;
    } else {
        return 0;
    }
}
arr2.sort(compare); //指定排序function
console.info(arr2); //[1, 2, 4, 7, 10]


转载于:https://my.oschina.net/u/2317126/blog/380809

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值