4_引用类型(【一】数组)
4_引用类型(【一】数组)
1217528969 发表于3年前
4_引用类型(【一】数组)
  • 发表于 3年前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 数组的概念、特性、常用方法

在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]


共有 人打赏支持
粉丝 2
博文 27
码字总数 14810
×
1217528969
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: