Array类型及其方法

引用类型

一. Object类型
  • 到目前为止,引用类型值大多都是object 的实例。可以使用new Object ( )创建一个object实例,也可以使用字面量 { } 创建。通过对象字面量定义对象时,实际上不会调用Object构造函数。
  • 访问对象属性,可以使用点表示法,也可以用方括号表示法
var per1 = new Object();
var per2 = { };
console.log(per1.name);
console.log(per2[name]);
二. Array( )类型
  1. 创建方法
var arr = new Array();
var arr2 = [1,2,3,6];
  • length属性:数组的长度
  • 检测数组方法:Array.isArray( ) 判断传入参数是否为数组,返回 true 或 false
  1. 数组的转换方法
  • valueOf( ) 返回数组本身
  • toString( ) 返回数组中每个值以逗号分隔的拼接而成的字符串形式
  • toLocaleString( ) 返回一个数组值以本地分隔符分隔的字符串
  • join( ) 返回用指定分隔符分隔每个元素的字符串,不传入参数或传入undefined,则使用逗号作为分隔符
var arr = [1, 3, 5, "li", "si"];
console.log(arr.valueOf());          // (5) [1, 3, 5, "li", "si"]
 console.log(arr.toString());        // 1,3,5,li,si
 console.log(typeof arr.toString());  // string
 console.log(arr.toLocaleString());   // 1,3,5,li,si
 console.log(typeof arr.toLocaleString());   // string
 console.log(arr.join("-"));          // 1-3-5-li-si
  1. 栈方法
  • push( ) 把传入的参数逐个添加到数组末尾,并返回修改后数组的长度
  • pop( ) 移除数组末尾最后一项,返回移除的项
var arr = [1, 3, 5, "li", "si"];
console.log(arr.push(66, "666"));  // 7 即修改后的数组长度 
console.log(arr);   //(7) [1, 3, 5, "li", "si", 66, "666"] 修改后的数组
console.log(arr.pop());  // 666 返回被移除的数组末尾项
console.log(arr);  //(6) [1, 3, 5, "li", "si", 66] 修改后的数组
  1. 队列方法
  • unshift( ) 在数组前端添加任意个项,并返回新数组长度
  • shift( ) 移除数组第一项,并返回该项
var arr = [1, 3, 5, "li", "si"];
console.log(arr.unshift(66, "666"));  // 7 即修改后的数组长度 
console.log(arr);   //(7) [66, "666", 1, 3, 5, "li", "si"] 修改后的数组
console.log(arr.shift());  // 66 返回被移除的数组末尾项
console.log(arr);  //(6) ["666", 1, 3, 5, "li", "si"] 修改后的数组
  1. 重排序方法
  • reverse( ) 反转数组项的顺序,返回颠倒后的数组
  • sort( ) 对原始数组进行排序,返回排序后的数组。可以传入一个比较函数,比较函数有两个参数,就是数组的前后元素,根据比较函数的返回值改变两个元素在数组中的顺序
var arr = [1,2,3,4,5];
console.log(arr.reverse());  //(5) [5,4,3,2,1]  反转数组
function compare(a,b){
   if(a > b){
      return 1;  //返回值大于0,a 会被移到b 的后面,在这里较小数往前移
   }else if(a < b){
      return -1;   //返回值大于0,a 会被移到b 的前面,在这里较小数往前移
   }else{
      return 0;  //返回值为0,a b 不改变位置
   }
}
console.log(arr.sort(compare));  //(5) [1,2,3,4,5] 对数组降序排列
  1. 位置方法
  • indexOf( ) 从数组开头向后查找,返回要查找的项在数组中的位置,找到返回索引,没找到返回 -1
  • lastIndexOf( ) 从数组末尾向前查找,返回要查找的项在数组中的位置,找到返回索引,没找到返回 -1
var arr = [1,2,3,4,5,3,7,2];
console.log(arr.indexOf(3));        // 2
console.log(arr.indexOf(3,3));      // 5,第一个参数指定从3的位置往后找
console.log(arr.lastIndexOf(2));    // 7
console.log(arr.lastIndexOf(3,2));  // 2,第一个参数指定从3的位置往前找
  1. 迭代方法
  • every( ) 对数组每一项运行给定函数,如果该函数对数组每一项都返回true,则返回true,否则返回false
  • filter( ) 对数组每一项运行给定函数,返回该函数返回true的项组成的数组
  • forEach( ) 对数组每一项运行给定函数,没有返回值
  • map( ) 对数组每一项运行给定函数,返回每次函数调用的结果组成的数组
  • some( ) 对数组每一项运行给定函数,该函数对数组中任一项返回true,则返回true
var arr = [ 1, 2,  5, 6, 2, 3, 4];
var every = arr.every(function(item, index, value){
    return item > 3;
});
console.log(every);    // false,不是每项都大于3,item是数组项

var some = arr.some(function(item, index, value){
    return item > 3;
});
console.log(some);    // true,有一项大于3就可以了

var fil = arr.filter(function(item, index, value){
    return item > 3;
});
console.log(fil);    // (3) [5, 6, 4] 返回数组大于3的项组成的新数组

var map = arr.map(function(item, index, value){
    return item + 3;
});
console.log(map);      // (7) [4, 5, 8, 9, 5, 6, 7]  返回原数组的每一项加3组成的新数组

var f = arr.forEach(function(item, index, value){
       item + index;
});
console.log(f);     //对数组的每一项执行函数内容,没有返回值
  1. 操作方法
  • concat( ) 拼接数组,先创建当前数组一个副本,把接收到的参数值添加到副本末尾,返回新构建的数组
  • slice( ) 截取数组,提取指定参数位置之间的元素,返回一个新数组
  • splice( 操作数组的位置,删除的元素个数,插入的元素 )
    用于删除、替换、插入数组
var arr = ["red", "green", "blue"];
var arr2 = ["pink", "purple"];       // 拼接数组,返回拼接后的新数组
var conArr = arr.concat(arr2);    // (5) ["red", "green", "blue", "pink", "purple"]
console.log(conArr.slice(1,2));       // (2) ["blue", "pink"]  截取索引2到4的元素,左闭右开,就是取不到索引为4的元素
var removed = arr.splice(0,1);    // 从数组索引为0的位置删除一个元素
console.log(arr);                         // (2) ["green", "blue"] 
console.log(removed);               // ["red"],返回删除元素构成的数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JavaScript中,有七种基本数据类型和一种复杂数据类型。 1. 基本数据类型: - number:数字类型,包括整数和浮点数 - string:字符串类型 - boolean:布尔类型,true或false - undefined:未定义类型 - null:空类型 - symbol:符号类型,ES6新增 - bigint:大整数类型,ES10新增 2. 复杂数据类型: - object:对象类型,包括数组、函数、正则表达式等 检测数据类型方法: 1. typeof运算符 typeof是JavaScript中的一元运算符,可以返回一个值的数据类型。例如: ```javascript typeof 123; // "number" typeof "hello"; // "string" typeof true; // "boolean" typeof undefined; // "undefined" typeof null; // "object" typeof Symbol(); // "symbol" typeof 100n; // "bigint" ``` 需要注意的是,typeof null返回的是"object",这是一个历史遗留问题。 2. instanceof运算符 instanceof运算符用于检测一个对象是否属于某个类或构造函数的实例。例如: ```javascript const arr = [1, 2, 3]; arr instanceof Array; // true const fn = function() {}; fn instanceof Function; // true ``` 需要注意的是,instanceof只能用于检测对象类型,不能检测基本数据类型。 3. Object.prototype.toString方法 Object.prototype.toString方法可以返回一个值的完整数据类型。例如: ```javascript Object.prototype.toString.call(123); // "[object Number]" Object.prototype.toString.call("hello"); // "[object String]" Object.prototype.toString.call(true); // "[object Boolean]" Object.prototype.toString.call(undefined); // "[object Undefined]" Object.prototype.toString.call(null); // "[object Null]" Object.prototype.toString.call(Symbol()); // "[object Symbol]" Object.prototype.toString.call(100n); // "[object BigInt]" ``` 需要注意的是,null和undefined没有自己的构造函数,所以通过Object.prototype.toString方法检测它们的类型需要特殊处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值